我正在寻找一种比较没有strcmp的2个char数组的方法。
这是要走的路吗?还是我错过了什么?当我编译它时,如果我在两者中输入相同的字符串,则程序将卡住并且不会做任何事情。请帮忙!
编辑:对不起,它应该是A我不是C
int compare_info(char *array1, char *array2)
{
int i;
i = 0;
while(array1[i] == array2[i])
{
if(array1[i] == '\0' || array2[i] == '\0')
break;
i++;
}
if(array1[i] == '\0' && array2[i] == '\0')
return 0;
else
return-1;
}
最佳答案
在这里,您有一个解决方案,就像代码一样漂亮,但是我进行了一些更改。我在循环的中间取出了 yield ,因为它们破坏了结构,因此更易于分析。完成后,我在while中添加了一个新条件,因此当找到字符串的结尾时,循环结束
int compare_info(char *array1, char *array2)
{
int i;
int response = 0;
i = 0;
while(array1[i] == array2[i] && response == 0 )
{
if(array1[i] == '\0' || array2[i] == '\0'){
response = 1;
}
i++;
}
return response;
}
关于在C中不使用strcmp的情况下比较Char数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27495346/