如何比较这两个字符数组以确保它们完全相同?
char test[10] = "idrinkcoke"
char test2[10] = "idrinknote"
我正在考虑使用for loop
,但我在其他地方读到了我在C中无法做test[i] == test2[i]
。
如果有人能帮助我,我真的很感激。谢谢。
答案 0 :(得分:10)
但我在其他地方读到我无法在C中测试[i] == test2 [i]。
比较逐个字符真的很痛苦。由于您要在此处比较两个字符数组(字符串),因此应使用strcmp
代替:
if( strcmp(test, test2) == 0)
{
printf("equal");
}
编辑:
初始化字符数组时无需指定大小。这会更好:
char test[] = "idrinkcoke";
char test2[] = "idrinknote";
如果使用strncmp
它也会更好 - 一般来说更安全(如果字符数组碰巧是非NULL终止的)。
if(strncmp(test, test2, sizeof(test)) == 0)
答案 1 :(得分:2)
您可以使用C库函数strcmp
像这样:
if strcmp(test, test2) == 0
将C字符串str1与C字符串str2进行比较。
此函数开始比较每个字符串的第一个字符。如果 它们彼此相等,它继续以下对 直到字符不同或直到终止空字符为止 达到。
此函数执行字符的二进制比较。为一个 考虑特定于语言环境的规则的函数,请参阅strcoll。
并返回值:
如果两个字符串的内容相等,则返回0