解题思路:

注意事项:

参考代码:

#include"bits/stdc++.h"
using namespace std;
// 定义结构体aaa,包含三个字符数组a, b, c
struct aaa{
    char a[100];
    char b[100];
    char c[100];
}a[10000]; // 定义结构体数组a,大小为10000
int main(){
    char b[100]; // 定义字符数组b,用于存储输入的字符串
    int e, k = 0; // 定义整数e和k,k初始化为0
    cin >> b; // 从标准输入读取一个字符串到b中
    cin >> e; // 从标准输入读取一个整数到e中
    for(int i = 0; i < e; i++){
        // 循环读取e个结构体数据,分别存储到a[i].a, a[i].b, a[i].c中
        cin >> a[i].a >> a[i].b >> a[i].c;
    }
    for(int i = 0; i < e; i++){
        // 遍历结构体数组a,检查每个元素的c字段是否与输入的字符串b相等
        if(strcmp(a[i].c, b) == 0){
            char kkk[100] = {0}; // 定义并初始化字符数组kkk,用于存储转换后的字符串
            strcpy(kkk, a[i].b); // 将a[i].b的内容复制到kkk中
            for(int j = 0; j < strlen(kkk); j++){
                // 遍历kkk中的每个字符,如果是小写字母则转换为大写,反之亦然
                if(kkk[j] >= 'a' && kkk[j] <= 'z'){
                    kkk[j] -= 32; // 小写转大写
                }
                else if(kkk[j] >= 'A' && kkk[j] <= 'Z'){
                    kkk[j] += 32; // 大写转小写
                }
            }
            cout << a[i].a << " "; // 输出a[i].a的值
            k++; // 计数器k加1
            for(int j = 0; j < strlen(kkk); j++){
                // 输出转换后的字符串kkk
                cout << kkk[j];
            }
            cout << endl; // 换行
        }
    }
    if(k == 0){
        // 如果计数器k仍为0,表示没有找到匹配项,输出"empty"
        cout << "empty" << endl;
    }
    return 0; // 返回0,表示程序正常结束
}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

H2430821055 2月前 回复TA
详细注释好评:)