C语言高手来,找错.小弟谢过
发布网友
发布时间:2023-11-10 15:59
我来回答
共3个回答
热心网友
时间:2024-12-04 06:29
ch1[a1]!='\0'||ch2[a2]!='\0'
首先是条件错!,应该是两个同时成立!
你的a2能赋为0,没问题!
你的j没问题,但是最好还是换成好理解的吧!最好把初值赋上.
每次记录a1-1就行了,否则a2=0时,给j清零就行了.
看起来直观点.
再还没看出来有什么问题,你先调试一下再说,看看还有没有问题!
热心网友
时间:2024-12-04 06:29
看不懂,还没看明白你的思路
不过我改了一下
#include<stdio.h>
void main()
{
char ch1[1],ch2[20];
int a1,a2;
printf("\n请输入第一个字符串:");
gets(ch1);
printf("\n请输入第二个字符串:");
gets(ch2);
int j=0;
for (a2=0;ch2[a2]!='\0';a2++)
{
if (ch1[0]==ch2[a2])
{
j=a2;
}
}
if (j!=0)
printf("\n第一个字符串出现在第二个字符串的第%d个位置。\n",j+1);
else
printf("\n第一个字符串没出现在第二个字符串。\n");
}
//在XPSP2下调试通过,测试字符1在字符串2中出现的位置
热心网友
时间:2024-12-04 06:30
循环里面不断将a2清零,所以不能看到正确结果