mmxingye

导航

09 | 词组缩写问题求解

题目描述

定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写。 比如,C语言里常用的EOF就是end of file的缩写。

输入

测试数据占一行,有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成; 单词长度不超过10,由一个或多个空格分隔这些单词。

输出

输出规定的缩写

样例

输入

end of file

输出

EOF
#include <bits/stdc++.h>
using namespace std;

/*
第一步:要获得每个单词的首字母
如果是第-一个字符,那么不是空格就是首字母;
如果不是第-一个字符,当前字符不是空格,且上一个(s[i-1]) 字符是空格,则是首字母
*/

/*
第二步:判断,如果该字母是小写,转换为大写输出,如果是大写则直接输出

*/

//判断输入的字符是否是小写,如果是大写转大写,如果是大写则不转换
char up(char c){
	if(c >= 'a' && c <= 'z'){
		c=c-32;//c=C-('a'-'A');
	}
	return c;
}
int main(){
	char s[1000];//存 储词组
	int i;
	gets(s);
	//循环每个字符,判断输出首字母
	for(i = 0;i < strlen(s);i++){
	//如果是首字母
	//如果是第一一个字符,且不是空格则是首字母
		if(i==0 && s[i]!=' '){
			cout<<up(s[i]);
			//如果不是第一一个字符,则要满足当前字符不是空格,且 上-一个字符是空格
		}else if(i!=0 && s[i]!=' ' && s[i-1] == ' '){
			cout<<up(s[i]);
		}
	}
	getchar();
	getchar();
}

posted on 2022-06-09 19:01  独立树  阅读(185)  评论(0编辑  收藏  举报