输入一个英文句子,将每个单词的第一个字母改成大写字母。
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
思路:用ASCII码,变大写就是-32;
妙点:
1、变大写就是-32;
2、要注意分类讨论,若一开始输入个空的就直接跳过了;
3、关于如何把一个句子输入:
我一开始想的是用字符数组,奈何搞不了;
然后偶然看到一个函数gets(),可以把空格读入;
puts(),可以把空格输出。
——优秀!!
4、关于得知一个句子的字符长度:
函数头:
#include<string.h>
函数:
len=strlen(a);
5、用gets和puts函数貌似还要:
#include<stdlib.h>
整体代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char a[100];
int i,len;
while(gets(a)!='\0')
{
len=strlen(a);
if(a[0]!=' ')
{
a[0]=a[0]-32;
}
for(i=1;i<len;i++)
{
if(a[i]!=' '&&a[i-1]==' ')
{
a[i]=a[i]-32;
}
}
puts(a);
}
return 0;
}
至于换行什么的好像自动搞定了…?过了就行。