问题 I: 零基础学C/C++144——首字母变大写
题目描述
输入一个英文句子,将每个单词的第一个字母改成大写字母。
输入
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。
输出
请输出按照要求改写后的英文句子。
样例输入 Copy
i like acm
i want to get an accepted
样例输出 Copy
I Like Acm
I Want To Get An Accepted
提示
aa,bb应该变成Aa,bb而不是Aa,Bb
题解
因为你不知道输入的是全部大写还是全部小写还是一半一半,所以我们去要先全部转化成小写(*•̀ㅂ•́)و
之后我们如何判断每个单词的首字母呢?
只需要判断一个字符后面是不是空格就可以了,这样一想是不是很简单呢( (┙>∧<)┙へ┻┻~才不简单)
代码(AC)
点击查看代码
#include <stdio.h>
#include <string.h>
int main()
{
char str[120];
while (gets(str)!=NULL)
{
int i,n=strlen(str);
if (str[0]>='a'&&str[0]<='z') printf("%c",str[0]-32);
else printf("%c",str[0]);
for (i=1;i<n;i++)
{
if (str[i-1]==' '&&str[i]>='a'&&str[i]<='z') printf("%c",str[i]-32);
else printf("%c",str[i]);
}
printf("\n");
}
return 0;
}