当前位置:首页c语言 > 正文

c语言大厂面试经典题目:两个长度不超过80的字符串,串中包括大写、小写和空 格字符,去掉空格字符并忽略大小写后判断两个字符串是否相等。

作者:野牛程序员:2023-12-04 12:12:46c语言阅读 2676

c语言大厂面试经典题目:

两个长度不超过80的字符串,串中包括大写、小写和空 格字符,去掉空格字符并忽略大小写后判断两个字符串是否相等。 输入描述:第一行输入的是测试数据的组数n,每组测试数据占两行,第一行是第一个 字符申S1,第二行是第二个字符申S2。 输出描述:如果两个字符串相等,则输出YES,否则输出旳。 样例输入: 2 QW erTyu 0P qwert YUOp ASDDDfghj asDDFgHJ 样例输出: YES NO


#include <stdio.h>
#include <string.h>
#include <ctype.h>

// 比较两个字符串是否相等(忽略大小写和空格)
int compareStrings(char *str1, char *str2) {
    // 移除空格并将字符转换为小写
    for (int i = 0; str1[i]; i++) {
        if (str1[i] == ' ') {
            strcpy(&str1[i], &str1[i + 1]);
            i--;
        } else {
            str1[i] = tolower(str1[i]);
        }
    }

    for (int i = 0; str2[i]; i++) {
        if (str2[i] == ' ') {
            strcpy(&str2[i], &str2[i + 1]);
            i--;
        } else {
            str2[i] = tolower(str2[i]);
        }
    }

    // 比较修改后的字符串
    if (strcmp(str1, str2) == 0) {
        return 1; // 字符串相等
    } else {
        return 0; // 字符串不相等
    }
}

int main() {
    int n;
    scanf("%d", &n);

    while (n--) {
        char str1[80], str2[80];
        scanf("%s", str1);
        scanf("%s", str2);

        if (compareStrings(str1, str2)) {
            printf("YES\\n");
        } else {
            printf("NO\\n");
        }
    }

    return 0;
}


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击