判断字符不完全一致时,第几个字符出现不同
#include <stdio.h>#include <string.h>
#define MAX 1024
int main()
{
char str1,str2;
char *target1 = str1;
char *target2 = str2;
printf("请输入第一个字符串:");
fgets(str1, MAX, stdin);
printf("请输入第二个字符串:");
fgets(str2, MAX, stdin);
int num=0;
while(*target1!='\0'&&*target2!='\0'){
if(*target1++=*target2++){//当字符一样
num++;
}
}
if(!strcmp(str1,str2)){
printf("两个字符串完全一致!");
}else{
printf("两个字符串不完全相同,第%d个字符出现不同!",num);
}
return 0;
} 您的代码中有一个错误,您应该在比较字符时使用“==”而不是“=”。这是修改后的代码:
#include <stdio.h>
#include <string.h>
#define MAX 1024
int main()
{
char str1, str2;
char *target1 = str1;
char *target2 = str2;
printf("请输入第一个字符串:");
fgets(str1, MAX, stdin);
printf("请输入第二个字符串:");
fgets(str2, MAX, stdin);
int num = 0;
while (*target1 != '\0' && *target2 != '\0') {
if (*target1 == *target2) { // 当字符一样
num++;
target1++;
target2++;
} else {
break;
}
}
if (!strcmp(str1, str2)) {
printf("两个字符串完全一致!");
} else {
printf("两个字符串不完全相同,第%d个字符出现不同!", num + 1);
}
return 0;
}
现在,这段代码将会正确地比较两个字符串的每个字符,直到找到第一个不同的字符为止,并输出不同字符的位置。
页:
[1]