B - 首字母大写
题目描述
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(’ ‘)、制表符(’\t’)、回车符(’\r’)、换行符(’\n’)。
Input
输入一行:待处理的字符串(长度小于80)。
Output
输出一行:转换后的字符串。
Sample Input
if so, you already have a google account. you can sign in on the right.
Sample Output
If So, You Already Have A Google Account. You Can Sign In On The Right.
思路
首先判断这是首字母,意味着这个字母要是小写的,并且前一个字符是空格
另外,如果是第一个字母的话也要考虑到
代码
#include<string.h>
#include<stdio.h>
int main()
{
char a[100];
gets(a);
for(int i=0;i<strlen(a);i++)
{
if(a[i]>='a'&&a[i]<='z')
{
if(i==0)
a[i]-=32; //转换为大写 ASCII码减32
else if(a[i-1]==' ')
a[i]-=32;
}
}
puts(a);
}