|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#define MAX 1024
int main()
{
char str1[MAX],str2[MAX],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[MAX],str2[MAX],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++;
- }
- }
复制代码
|
|