首字母变大写
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 103588 Accepted Submission(s): 56243
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
这道题首先要知道如何判断首字母,我们知到除了第一个单词,后面的单词首字母的前面是空格,然后我们需要把首字母变成大写字母,其实就是小写字母+32就可以了。
思路:
1.判断首字母。
2.首字母是否是小写字母,如果不是就变成大写字母。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void){
int i;
char *t;
t=(char *)malloc(sizeof(char )*100);
while(gets(t)){
if(t[0]>='a'&&t[0]<='z') //判断第一个字母是不是大写
t[0]=t[0]-32; //小写变大写
for(i=0;i<strlen(t);i++){ //判断第二个单词开始首字母是不是大写
if(t[i]>='a'&&t[i]<='z'&&t[i-1]==' '){
t[i]=t[i]-32;
}
}
printf("%s\n",t);
}
return 0;
}