📅  最后修改于: 2023-12-03 15:29:43.731000             🧑  作者: Mango
在C语言中,字符串是以 null 结尾的字符数组。问题4要求我们写一个程序,对两个字符串进行逐个比较,输出第一个不同的字符的 ASCII 差值。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
// 声明两个字符串
char str1[100], str2[100];
// 读入两个字符串
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
// 逐个比较两个字符串的字符
for (int i = 0; i < strlen(str1) && i < strlen(str2); i++) {
// 如果有不同的字符,输出 ASCII 差值
if (str1[i] != str2[i]) {
printf("第一个不同的字符的 ASCII 差值为 %d。\n", str1[i] - str2[i]);
return 0;
}
}
// 如果全部字符都相同,则输出 0
printf("两个字符串完全相同。\n");
return 0;
}
首先,我们声明两个字符数组 str1
和 str2
,并从标准输入中读入两个字符串。
接着,我们使用 for
循环,逐个比较两个字符串的字符。如果有不同的字符,则输出该字符的 ASCII
差值,并结束程序。如果两个字符串相同,则输出提示信息并结束程序。
值得注意的是,我们在 scanf()
函数中使用 %s
格式化字符串,这将导致从标准输入中读入的字符串不包含空格。如果需要读入包含空格的字符串,可以使用 fgets()
函数替代。