求助!使用指针和fgets函数实现strcmp(比较字符串)
#include<stdio.h>#define MAX 1024
int main()
{
char str1,str2,ch1,ch2;
char*p1=str1,*p2=str2;
int count=1;
printf("请输入第一个字符串:") ;
fgets(str1,MAX,stdin);
printf("请输入第二个字符串:") ;
fgets(str2,MAX,stdin);
while(1)
{
ch1=*p1++;
ch2=*p2++;
if(*p1==*p2)
{
count++;
}
if(*p1=='\0'&&*p2=='\0')
{
printf("两个字符串完全一致!\n");
break;
}
if(*p1!=*p2)
{
printf("两个字符串不完全相同,第%d个字符出现不同!\n",count+1);
break;
}
}
}
结果如下:
这样,没有问题
也没有问题。
但如果只输入一个字符时,问题出现:
求解。
#include<stdio.h>
#define MAX 1024
int main()
{
char str1,str2,ch1,ch2;
char*p1=str1,*p2=str2;
int count=1; //你这都是一开始了,后面就没必要再加个一了
printf("请输入第一个字符串:") ;
fgets(str1,MAX,stdin);
printf("请输入第二个字符串:") ;
fgets(str2,MAX,stdin);
while(1)
{
// ch1=*p1++;你这样就直接跳过第一个字符了,所以你的第三个截图的原因就是这个
// ch2=*p2++;
if(*p1==*p2)
{
count++;
}
if(*p1=='\0'&&*p2=='\0')
{
printf("两个字符串完全一致!\n");
break;
}
if(*p1!=*p2)
{
printf("两个字符串不完全相同,第%d个字符出现不同!\n",count);
break;
}
// 要先比较完再移位
*p1++;
*p2++;
}
}
大马强 发表于 2022-1-5 23:37
感谢嘞!懂了!
页:
[1]