【问题标题】:Using the INSIDE function in C在 C 中使用 INSIDE 函数
【发布时间】:2020-05-10 17:08:48
【问题描述】:

小查询:在 Python 中,我知道您可以通过以下方式检查 char a 是否在数组 b 内:

 b = ['a', 'b', 'c', ...] # would be filled with letters
 if str(a) in b:
      # instructions.

在 C 语言中是否有类似的运算符或方法?

【问题讨论】:

  • a 是字符还是字符串?
  • 如果您只是要求它提供一个字符数组(以空结尾),您可以检查strchr 函数。如果您要问更一般的问题,则需要根据数组元素类型来实现它。
  • @gspr a 是单个字符

标签: c arrays char


【解决方案1】:

如果针是单个char,那么您可以使用strchrmemchrstrchr 仅在 haystack 为空终止时才有效,但您不需要提前知道长度。 memchr 即使没有空终止符也可以工作,但您确实需要告诉它长度。每个例子:

#include <string.h>

char b1[] = { 'a', 'b', 'c' /* ... */, '\0' };
if(strchr(b1, a)) /* ... */;

char b2[] = { 'a', 'b', 'c' /* ... */ };
if(memchr(b2, a, sizeof b2)) /* ... */;

如果针是chars 的数组,那么您可以使用strstrmemmem,有类似的区别。每个例子:

#define _GNU_SOURCE
#include <string.h>

char b1[] = { 'a', 'b', 'c' /* ... */, '\0' };
if(strstr(b1, a)) /* ... */;

char b2[] = { 'a', 'b', 'c' /* ... */ };
if(memmem(b2, sizeof b2, a, sizeof a)) /* ... */;

【讨论】:

  • 谢谢! strchr 似乎最适合这个。
猜你喜欢
  • 1970-01-01
  • 2017-01-28
  • 2011-12-22
  • 1970-01-01
  • 2013-06-04
  • 1970-01-01
  • 1970-01-01
  • 2017-08-11
  • 2022-11-22
相关资源
最近更新 更多