Problem Description
输入一个英文句子,将每个单词的第一个字母改成大写字母。
Input
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。
Output
请输出按照要求改写后的英文句子。
Sample Input
i like acm
i want to get an accepted
Sample Output
I Like Acm
I Want To Get An Accepted
#include<stdio.h>
#include<string.h>
int main(){
char s[100];
int len,i;
while(gets(s)){
len=strlen(s);
for(i=0;i<len;i++){
if(i==0)
s[i]=s[i]-32;
if(s[i]==' ')
s[i+1]=s[i+1]-32;
}
puts(s);
}
return 0;
}
//此题目没有考虑中间有多个空格,或开头有空格的情况,居然也能ac
类似题目:
定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写。
比如,C语言里常用的EOF就是end of file的缩写。
Input
测试数据占一行,有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成;
单词长度不超过10,由一个或多个空格分隔这些单词。
Output
输出规定的缩写
Sample Input
end of file
Sample Output
EOF
#include<stdio.h>
#include<string.h>
int main(){
char s[11];
gets(s);
int i;
int count[11];
for(i=0;i<strlen(s);i++){
//判断第一个字符
if(i==0){
if(s[i]>='A'&&s[i]<='Z')
putchar(s[i]);
else if(s[i]>='a'&&s[i]<='z')
putchar(s[i]-32);
}
if(s[i]==' '){
while(s[i]==' ') //过滤掉一些空格
i++;
if(s[i]>='A'&&s[i]<='Z')
putchar(s[i]);
else if(s[i]>='a'&&s[i]<='z')
putchar(s[i]-32);
}
}
return 0;
}
此题考虑到开头有空格,中间有多个空格的情况