词组缩写
时间限制: 1 Sec 内存限制: 32 MB
提交: 36 解决: 16
[提交][状态][讨论版]
题目描述
定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写。
比如,C语言里常用的EOF就是end of file的缩写。
输入
输入的第一行是一个整数T,表示一共有T组测试数据。
接下来有T行,每组测试数据占一行,每行有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成;
单词长度不超过10,由一个或多个空格分隔这些单词。
输出
请为每组测试数据输出规定的缩写,每组输出占一行。
样例输入
1
end of file
样例输出
EOF
提示
题目智能推荐
|
这道题真是折磨人,第一次用了scanf输入函数进行输入,没有注意到和gets函数的区别
gets和scanf()的区别在于输入的字符串是否中间有空格:对于前者,只有遇到"\n"时才停止输入,而对于后者,出现"\n"或空格停止输入。
第二次是数组长度设置的小了,编译错误,唉,长记性吧
#include<stdio.h>
#include<string.h>
int main()
{
char str[110];
int T;
scanf("%d",&T);
getchar();
while(T--)
{
gets(str);
int len=strlen(str);
if(str[0]>='A'&&str[0]<='Z')
printf("%c",str[0]);
else
printf("%c",str[0]-32);
for(int i=0;i<len;i++)
{
if(str[i]==' '&&str[i+1]>='A'&&str[i+1]<='Z')
printf("%c",str[i+1]);
else if(str[i]==' '&&str[i+1]>='a'&&str[i+1]<='z')
printf("%c",str[i+1]-32);
}
printf("\n");
}
return 0;
}