将特定数组元素与C中带有“if”的字符串进行比较?

Posted

技术标签:

【中文标题】将特定数组元素与C中带有“if”的字符串进行比较?【英文标题】:Compare a specific array element to a string with "if" in C? 【发布时间】:2011-01-29 16:51:04 【问题描述】:

相当琐碎的问题。

所以我尝试这样做:

if (array[0]=="some_string")

array 是一个字符串列表

array[0] = "some_string_1";
array[1] = "some_string_2";
array[2] = "some_string_3";

但显然它不起作用...... 我该怎么办?

【问题讨论】:

【参考方案1】:
if(array[0] == 'n')

"" 表示string'' 表示char

注意:'a'char"a"string,所以 'a' != "a"

char 是单个字符(实际上是 int),因此如果要比较字符串,请改用 strcmp

【讨论】:

" " 实际上表示 char*,但否则你仍然是对的。 ..但你只能使用 strcmp() 如果字符串是空终止的,或者如果你知道两个字符串的数组大小超过长度 n-1,你可以使用 strncmp() . @San: 我不能在这里详细解释一切:)【参考方案2】:

在您给出的示例中,您将单个字符(数组 [0])与编译后的字符串(“some_string”)的地址进行比较。

因为字符串文字被视为以 null 结尾的字符数组,并且使用 == 运算符与字符数组进行比较时会比较数组的地址。

您给出的示例与此基本相似:

char* x = "some_string";
char array[10];
if(array[0] == x)
    ...

您可以从这个示例中看到类型根本不匹配。正如另一张海报所说,您使用 [] 运算符从数组开头的括号中的偏移量中获取特定字符。

【讨论】:

以上是关于将特定数组元素与C中带有“if”的字符串进行比较?的主要内容,如果未能解决你的问题,请参考以下文章

将值与数组元素进行比较

C语言删除一个整型数组里面重复的元素

C语言编程 数组从大到小排列

将值与数组元素进行比较

如何将 uint8_t 数组与 C 中的字符串进行比较?

C++比较char数组和字符串