当前位置: 首页 > article >正文

【C++语言】卡码网语言基础课系列----11. 句子缩写

文章目录

  • 练习题目
    • 句子缩写
    • 具体代码实现
  • 小白寄语
    • 诗词共勉

练习题目

句子缩写

题目描述

输出一个词组中每个单词的首字母的大写组合。

输入描述

输入的第一行是一个整数n,表示一共有n组测试数据。(输入只有一个n,没有多组n的输入)
接下来有n行,每组测试数据占一行,每行有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成;
单词长度不超过10,由一个或多个空格分隔这些单词。

输出描述

请为每组测试数据输出规定的缩写,每组输出占一行。

输入示例

1
ad dfa fgs

输出示例

ADF

提示

注意:单词之间可能有多个空格

具体代码实现

#include <iostream>
#include <string>
using namespace std;

char changeChar(char &ch)
{
    if (ch >= 'a' && ch <= 'z') {
        ch -= 32;
    }
    
    return ch;
}

int main()
{
    int n; // 用于接收n组数据
    cin >> n; // 接收键盘输入的n
    getchar(); // 吸收一个回车,因为输入n之后,要输入一个回车

    while (n--) {
        // 开始处理第一组数据
        string s; // 用于接收第一行数据字符
        getline(cin, s); // 将第一行字符数据存入s中
        string result; // 用于记录结果
        // 处理第一个字符
        s[0] = changeChar(s[0]);
        result += s[0]; // 将转换后的数据存入结果中
        // 循环处理后续数据,遇到当前空格,且下一个非空格,则获取数据,并进行转换,然后存入结果中
        for (int i = 1; i < s.size() - 1; i++) {
            if (s[i] == ' ' && s[i+1] != ' ') {
                s[i+1] = changeChar(s[i+1]);
                result += s[i+1];
            }
        }
        cout << result << endl;
    }
    
    return 0;
}


// #include <iostream>
// #include <string>
// using namespace std;

// int main()
// {
//     int n; // 用于接收n组数据
//     cin >> n; // 接收键盘输入的n
//     getchar(); // 吸收一个回车,因为输入n之后,要输入一个回车

//     while (n--) {
//         // 开始处理第一组数据
//         string s; // 用于接收第一行数据字符
//         getline(cin, s); // 将第一行字符数据存入s中
//         string result; // 用于记录结果
//         // 处理第一个字符
//         if (s[0] >= 'a' && s[0] <= 'z') {
//             s[0] -= 32; // 小写字母转大写字母
//         }
//         result += s[0]; // 将转换后的数据存入结果中
//         // 循环处理后续数据,遇到当前空格,且下一个非空格,则获取数据,并进行转换,然后存入结果中
//         for (int i = 1; i < s.size() - 1; i++) {
//             if (s[i] == ' ' && s[i+1] != ' ') {
//                 if (s[i+1] >= 'a' && s[i+1] <= 'z') {
//                     s[i+1] -= 32;
//                 }
//                 result += s[i+1];
//             }
//         }
//         cout << result << endl;
//     }
    
//     return 0;
// }

小白寄语

扎根,做好手头的事,精进。

诗词共勉

人生若只如初见,何事秋风悲画扇。
等闲变却故人心,却道故人心易变。
-----------纳兰性德


http://www.kler.cn/a/530237.html

相关文章:

  • TensorFlow简单的线性回归任务
  • DeepSeek V3 vs R1:大模型技术路径的“瑞士军刀“与“手术刀“进化
  • 安卓通过网络获取位置的方法
  • Python Web框架比较:Flask与FastAPI的特性和应用场景
  • 纯后训练做出benchmark超过DeepseekV3的模型?
  • python实现金属杆与圆形纸片运动模拟
  • DeepSeek让英伟达狂跌三年?
  • openEuler系统磁盘管理方法
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_strerror_init()函数
  • OpenAI发布o3-mini:免费推理模型,DeepSeek引发的反思
  • MySQL 基础学习(4):条件查询(WHERE)更新操作(UPDATE)删除操作(DELETE)分页查询(LIMIT)
  • 算法随笔_36: 复写零
  • 面向初学者的卷积神经网络_卷积神经网络好学吗
  • C++泛型编程指南03-CTAD
  • shell编程(1)——shell介绍
  • Hive分区和分桶
  • unity中的动画混合树
  • Games104——网络游戏的进阶架构
  • 分享10个实用的Python工具的源码,支持定制
  • Java项目: 基于SpringBoot+mybatis+maven+mysql实现的图书管理系统(含源码+数据库+答辩PPT+毕业论文)
  • Python爬虫从入门到精通(三)简单爬虫的实现_爬虫tl
  • 问deepseek,如何看待ai降低学习成本而导致软件开发岗位需求降低,和工资下降。 软件从业人员何去何从?
  • 陆游的《诗人苦学说》:从藻绘到“功夫在诗外”(中英双语)mastery lies beyond poetry
  • 鸿蒙 循环控制 简单用法
  • 洛谷的更多功能(不会像其他文章那样复杂且仅支持Edge浏览器)
  • 《 C++ 点滴漫谈: 二十五 》空指针,隐秘而危险的杀手:程序崩溃的真凶就在你眼前!