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<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char a[1000];
int b;
while(gets(a))
{
b=strlen(a);
a[0]=a[0]-32;
for(int i=0; i<b; i++)
{
if(a[i]==' ')
a[i+1]=a[i+1]-32;
}
for(int i=0; i<b; i++)
cout<<a[i];
cout<<endl;
}
return 0;
}
题解:习惯多组输入用scanf函数,但scanf函数不能读入空格,然后就用gets()函数,它可以读入空格,多组输入的时候不用加取反符号。字母比较大小,实际就是比较他们的ascii值,小写字母变大写只需要减32就可以了。