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]!=' ' 除第一个字母外,其他字母
自定义函数
需在主函数上先定义
如果要对主函数中的值进行修改,需在形参中加 & 引用

浙公网安备 33010602011771号