|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#define MAX 1024
int main ()
{
char str1[MAX];
char str2[MAX];
char *strget1 = str1;
char *strget2 = str2;
int ch , n;
printf("请输入第一串字符 ; ");
fgets(str1, MAX, stdin);
printf("请输入第二串字符 ; ");
fgets(str2, MAX, stdin);
printf("请输入需要对比的字符数 ; ");
scanf("%d",&n);
for(ch = 1; ch < n; ch++)
{
if(*strget1++ != *strget2++)
{
break;
}
}
if(ch >= n && *(strget1 + n) == *(strget2 + n))
{
printf("两个字符串的前 %d 个字符完全相同!",n);
}
else
{
printf("两个字符串不完全相同, 第 %d 个字符出现不同!\n",ch);
}
return 0;
}
本帖最后由 jackz007 于 2020-11-20 15:23 编辑
sunrise085 发表于 2020-11-20 11:02
楼上指出了你的程序的问题所在,但是好像没改对。
for循环后两个指针都向后移动了,循环结束后,指针前的 ...
根本没必要那么比,如果前 n 个字符相等,ch 一定等于 n,如果不想等,ch 一定小于 n。所以,只要根据 ch 的值判断就足够了。所以,后面的字符比较纯属多余。
|
|