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方面关于你工作场所问题的一些个人经验,但我不能在问答中这样做。如果你对谈话感兴趣,请给我发电子邮件。:)