关于指针课后作业的问题
比较字符串 —— 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个”呢?
我的这个代码和答案的差不多一样吧。
//target1++了两次,而target2只++了一次
//所以,循环条件改为
//while(*target1 != '\0'&& *target2 !='\0')
while(*target1++ != '\0'&& *target2 !='\0')
{
if(*target1++ != *target2++)
{
break;
}
i++;
}
页:
[1]