C语言编写程序实现,对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如,输入的两个字符串分别为"abcdefg"和"abceef",则输出为﹣1
时间: 2024-12-23 09:25:26 浏览: 1
在C语言中比较两个字符串是否相等的方法
在C语言中,你可以通过以下步骤来编写程序实现这个功能:
1. 首先,你需要从用户那里获取两个字符串的输入,可以使用`scanf`函数。
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[50], str2[50];
// 获取输入
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin);
str1[strcspn(str1, "\n")] = '\0'; // 移除换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strcspn(str2, "\n")] = '\0'; // 移除换行符
```
2. 然后,遍历两个字符串,找到第一个不相同的字符。可以使用`strcmp`函数判断字符是否相等,同时记录下当前索引。
```c
int len1 = strlen(str1);
int len2 = strlen(str2);
int index1 = 0, index2 = 0;
while (index1 < len1 && index2 < len2) {
if (str1[index1] != str2[index2]) {
break;
}
index1++;
index2++;
}
```
3. 最后,计算并输出ASCII码之差。如果找到了不相同的字符,使用`printf`打印它们的ASCII码,并计算差值。
```c
if (index1 == len1) { // 如果str1已经遍历完,说明str2更长,取str2的下一个字符作为不同点
index1 = index2 + 1;
printf("第一个不匹配字符在 %s 中,ASCII码为 %d\n", str2, str2[index2]);
} else if (index2 == len2) { // 同理,如果str2遍历完,取str1的下一个字符作为不同点
index2 = index1 + 1;
printf("第一个不匹配字符在 %s 中,ASCII码为 %d\n", str1, str1[index1]);
} else { // 如果都未遍历完,直接取当前字符的ASCII码
if (str1[index1] > str2[index2]) {
printf("第一个不匹配字符在 %s 中,ASCII码差值为 %d\n", str1, str1[index1] - str2[index2]);
} else {
printf("第一个不匹配字符在 %s 中,ASCII码差值为 %d\n", str2, str2[index2] - str1[index1]);
}
}
return 0;
}
```
运行此程序,它会接收用户的输入,并计算并输出两个字符串中第一个不相同字符的ASCII码之差。如果你在实际运行时遇到问题,记得检查字符串是否已正确处理。
阅读全文