小编use*_*602的帖子

C strcmp表现得很奇怪

好吧,我不确定这是我还是其他什么,但我真的很困惑.

我试图在另一个字符串中找到第一个字符串出现(就像C++中的InString()),但是从C开始,用strcmp()来做.

我有两个char数组,string []和toFind [],我在两个for()循环中通过它们比较每个char和strcmp().

这是代码:

int inString(char string[], char toFind[]){

int i_toFind, i_string, check = 0, start = -1;

for(i_toFind = 0; i_toFind < getLength(toFind)-1; i_toFind++){

    for(i_string = 0; i_string < getLength(string)-1; i_string++){

        if(strcmp(&string[i_string], &toFind[i_toFind])==0){

            printf("%i & %i == %i\n", string[i_string], toFind[i_toFind], strcmp(&string[i_string], &toFind[i_toFind]));

            if(start == -1){
                start = i_string;
            }

            check++;
            i_toFind++;

            if(check == getLength(toFind)-1){
                return start;
            }

        }
        else{

            printf("%i & %i == %i\n", string[i_string], toFind[i_toFind], strcmp(&string[i_string], &toFind[i_toFind]));

            check = 0;
            start = -1;

        }

    }

} …
Run Code Online (Sandbox Code Playgroud)

c compare char strcmp

0
推荐指数
1
解决办法
229
查看次数

标签 统计

c ×1

char ×1

compare ×1

strcmp ×1