将特定数组元素与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”的字符串进行比较?的主要内容,如果未能解决你的问题,请参考以下文章