|
10鱼币
比较字符串 —— strcmp 和 strncmp 函数
#include<stdio.h>
#define max 1024
int main()
{
char str1[max];
char str2[max];
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++;
- }
复制代码
|
|