用c语言写一个程序:对输入的字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差
时间: 2024-10-23 18:14:23 浏览: 13
在C语言中比较两个字符串是否相等的方法
当你想要比较两个字符串并找出它们的第一个不匹配字符的ASCII码差异时,你可以编写如下的C语言程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin); // 防止fgets读入换行符
str1[strcspn(str1, "\n")] = '\0'; // 截断多余的换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strcspn(str2, "\n")] = '\0'; // 截断多余的换行符
int len1 = strlen(str1);
int len2 = strlen(str2);
for (int i = 0; i < min(len1, len2); i++) {
if (str1[i] != str2[i]) { // 如果找到不相同的字符
int diff = (int)str1[i] - (int)str2[i]; // 计算ASCII码差值
printf("第一个不相同字符 '%c' 的ASCII码之差为 %d\n", str1[i], diff);
break;
}
}
if (len1 > len2) { // 如果一个字符串比另一个长
for (int j = len2; j < len1; j++) {
int diff = (int)str1[j] - (int)'\0'; // 比较剩余部分
printf("第一个不相同字符 '%c' 的ASCII码之差为 %d\n", str1[j], diff);
break;
}
} else if (len1 < len2) { // 否则如果相反
for (int j = len1; j < len2; j++) {
int diff = (int)str2[j] - (int)'\0'; // 比较剩余部分
printf("第一个不相同字符 '%c' 的ASCII码之差为 %d\n", str2[j], diff);
break;
}
}
return 0;
}
```
这个程序首先获取用户输入的两个字符串,然后逐个字符比较。一旦发现不相同的字符,它会计算并打印出那个字符的ASCII码差值。如果其中一个字符串比另一个长,则会检查较长字符串中剩余部分的差异。
阅读全文