咯咯哒1 发表于 2020-10-30 23:50:41

关于指针课后作业的问题

比较字符串 —— strcmp 和 strncmp 函数

#include<stdio.h>
#define max 1024
int main()
{
char str1;
char str2;
char *target1 = str1;
char *target2 = str2;
int i =1;
printf("请输入第一个字符串:");
fgets(str1,max, stdin);
printf("请输入第二个字符串:");
fgets(str2,max, stdin);
printf("正在比较中。。。");
while(*target1++ != '\0'&& *target2 !='\0')
{
      if(*target1++ != *target2++)
      {
          break;
      }
      i++;
}
if(*target1 == '\0' && *target2 == '\0')
{
      printf("这两个字符完全一致!!");
}
else
{
      printf("这两个字符不一样你看不出来吗?,不同的是第%d个。",i);
}
return 0;

为什么无论输入什么字符串,输出的都是“不同的是第1个”呢?
我的这个代码和答案的差不多一样吧。

xieglt 发表于 2020-10-30 23:50:42


//target1++了两次,而target2只++了一次
//所以,循环条件改为
//while(*target1 != '\0'&& *target2 !='\0')
while(*target1++ != '\0'&& *target2 !='\0')
{
      if(*target1++ != *target2++)
      {
          break;
      }
      i++;
}
页: [1]
查看完整版本: 关于指针课后作业的问题