C 如何比较两个字符数组
如何比较这两个字符数组以确保它们相同C 如何比较两个字符数组,c,C,如何比较这两个字符数组以确保它们相同 char test[10] = "idrinkcoke" char test2[10] = "idrinknote" 我正在考虑对循环使用,但我在其他地方读到,我不能在C中使用test[I]==test2[I] 如果有人能帮上忙,我将不胜感激。多谢各位 但是我在别的地方读到,我不能用C语言做test[I]==test2[I] 这样一个角色一个角色地比较真的很痛苦。由于要在此处比较两个字符数组(字符串),应改用strcmp: if( strcmp(test,
char test[10] = "idrinkcoke"
char test2[10] = "idrinknote"
我正在考虑对循环使用,但我在其他地方读到,我不能在C中使用test[I]==test2[I]
如果有人能帮上忙,我将不胜感激。多谢各位
但是我在别的地方读到,我不能用C语言做test[I]==test2[I]
这样一个角色一个角色地比较真的很痛苦。由于要在此处比较两个字符数组(字符串),应改用strcmp
:
if( strcmp(test, test2) == 0)
{
printf("equal");
}
编辑:
- 初始化字符数组时,无需指定大小。这样会更好:
chartest[]=“idrinkcoke”代码>
chartest2[]=“idrinknote”代码>
- 如果使用
strncmp
,也会更好,这通常更安全(如果字符数组恰好不是以NULL结尾)
if(strncmp(test,test2,sizeof(test))==0)
您可以使用C库函数strcmp
像这样:
如果strcmp(测试,测试2)==0
从:
比较C字符串str1和C字符串str2
此函数开始比较每个字符串的第一个字符。如果
它们彼此相等,下面的几对继续
直到字符不同时或直到终止的空字符
达到
此函数执行字符的二进制比较。暂时
考虑特定于语言环境的规则的函数,请参见strcoll
在返回值上:
如果两个字符串的内容相等,则返回0
strcmp(a,b)==0
是您正在寻找的。您可以执行test[i]==test2[i]
,因为它们是字符比较。但要比较字符串,您需要使用函数strcmp()
@ThomasWest,No,strcmp(test,test2)
我在其他地方读到了我在C中无法进行test[I]==test2[I]的内容
-您在哪里读到的?使用strncp,避免使用strcmp。除此之外,这里的内存溢出了,你分配了10个字符,写了11个字符(10个字符来自“idrinkcoke”和一个空终止符)。我以前不知道这个。谢谢。你没有错过strncmp示例代码中的“n”吗?@Habib是的,谢谢。我非常想分享两家公司以及azubi方面关于你工作场所问题的一些个人经验,但我不能在问答中这样做。如果你对谈话感兴趣,请给我发电子邮件。:)