char类型数组使用什么操作数?

Bog*_*anM -2 c

我有一个愚蠢的问题,我只能掌握它.有一个简单的C代码(只想查找字符串str1是否以str2开头):

int main()
{
    int i, j; 
    char sir1[150], sir2[150], sir3[150];
    printf("insert the first string (sir1) and then hit ENTER \n");
    gets(sir1);
    printf("insert the second string (sir1) and then hit ENTER \n");
    gets(sir2);
    printf("\n");
    int len_sir2=strlen(sir2);
    for (i=0;i<len_sir2;i++)
    {
        sir3[i]=sir1[i];
    }

    for (j=0;j<len_sir2;j++)
    {
        if (sir3[i]!=sir2[i]){printf("String 1 does not start with String 2\n");break;return 0;}
    }
    printf("Sir1 starts with Sir2 \n");
    getch();    
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,对于示例"bananna"和"ana",代码似乎具有sir2 [0]和sir3 [0]的相等值,即使在Quick Watch中显示的值是98'b'和97'一个'.我做错了什么?提前谢谢了,

Pau*_*kin 9

一个错误是你循环j,但你i在循环内使用.

for (j=0;j<len_sir2;j++)
    {
        if (sir3[i]!=sir2[i]){printf("String 1 does not start with String 2\n");break;return 0;}
    }
Run Code Online (Sandbox Code Playgroud)