Day6 14. 句子缩写 -卡码网C++基础课

题目链接:14. 句子缩写

题目描述

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

输入描述

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

输出描述

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

输入示例

1
ad dfa     fgs

输出示例

ADF

提示信息

注意:单词之间可能有多个空格
点击查看代码
#include<iostream>
#include<string>
using namespace std;

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

int main(){
  int n;
  cin >> n;
  getchar();
  string s;
  while(n--){
      getline(cin,s);
      string result;
      result+=changChar(s[0]);
      for(int i=1;i<s.size()-1;i++){
          if(s[i]==' '&&s[i+1]!=' '){
              result+=changChar(s[i+1]);
          }
      }
      cout << result << endl;
  }
  return 0;
}
小结

getchar()的使用

用来吸收多余的回车符

大小写的判断与转换

通过与'a' 'z' 比较确定大小写
通过ASC||码值,将小写字母减去32得到对应大写字母
通过条件判断 s[i]==' '&&s[i+1]!=' ' 除第一个字母外,其他字母

自定义函数

需在主函数上先定义
如果要对主函数中的值进行修改,需在形参中加 & 引用
posted @ 2025-12-19 19:12  afterday  阅读(0)  评论(0)    收藏  举报