我有一个愚蠢的问题,我只能掌握它.有一个简单的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'一个'.我做错了什么?提前谢谢了,
一个错误是你循环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)