我正在寻找一种比较没有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/

10-16 15:09