5-编写程序实现,对键盘输入的两个字符串进行比较,然后输出两个字待串中第一个不相同字符的 ASCII 码之差。例如,输入的两个字待串分别为 “abcderg” 和“abceer,则論出为-1 用c语言自定义函数写出
时间: 2024-12-16 08:17:37 浏览: 11
在C语言中,你可以创建一个函数来实现这个功能。首先,我们需要遍历两个字符串,找到它们的第一个不匹配字符。这里是一个简单的实现示例:
```c
#include <stdio.h>
#include <string.h>
// 定义一个函数来找出并返回两个字符串中第一个不相同字符的ASCII码之差
int find_diff_char(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 遍历字符串,直到找到不匹配的字符
for (int i = 0; i < len1 && i < len2; ++i) {
if (str1[i] != str2[i]) {
return abs((int)(str1[i]) - (int)(str2[i])); // 返回ASCII码之差,并取绝对值
}
}
// 如果两个字符串完全相同,但是长度不同,则返回长度较小字符串的最后一个字符的ASCII码减去另一个字符串相应位置的ASCII码
if (len1 != len2) {
return abs((int)(str1[len1 - 1]) - (int)(str2[(len1 > len2 ? len1 : len2) - 1]));
}
// 如果两个字符串完全相同
return 0;
}
int main() {
char input1[100], input2[100];
printf("请输入第一个字符串:");
fgets(input1, sizeof(input1), stdin); // 使用fgets防止换行符影响结果
input1[strlen(input1) - 1] = '\0'; // 移除末尾的换行符
printf("请输入第二个字符串:");
fgets(input2, sizeof(input2), stdin);
input2[strlen(input2) - 1] = '\0';
int diff = find_diff_char(input1, input2);
printf("两个字符串第一个不相同字符的ASCII码之差为:%d\n", diff);
return 0;
}
```
在这个程序中,`find_diff_char`函数接受两个字符串作为参数,通过比较每个字符,找到第一个不相同的字符,并计算其ASCII码的差值。如果两个字符串完全不同,它还会处理这种情况。
阅读全文