📜  C |字串|问题4(1)

📅  最后修改于: 2023-12-03 15:29:43.731000             🧑  作者: Mango

C语言 | 字串 | 问题4

在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;
}
代码解释

首先,我们声明两个字符数组 str1str2,并从标准输入中读入两个字符串。

接着,我们使用 for 循环,逐个比较两个字符串的字符。如果有不同的字符,则输出该字符的 ASCII 差值,并结束程序。如果两个字符串相同,则输出提示信息并结束程序。

值得注意的是,我们在 scanf() 函数中使用 %s 格式化字符串,这将导致从标准输入中读入的字符串不包含空格。如果需要读入包含空格的字符串,可以使用 fgets() 函数替代。