我遇到了一个愚蠢的问题,但我可以解决它。 有一个简单的 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();
}
我的问题是,对于示例“bananna”和“ana”,代码似乎对 Sir2[0] 和 Sir3[0] 具有相同的值,即使在快速观察中显示的值是 98'b'和97'a'。我做错了什么? 非常感谢,
最佳答案
一个错误是您循环了 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;}
}
关于c - char 类型数组使用什么操作数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29816148/