标题HDOJ 2026 首字母变大写
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 <stdio.h>
#include <ctype.h>
int changeStr(char*);
int main(void)
{
char str[110];
while (scanf("%[^\n]", str) != EOF)//输入一行带空格的字符串,碰到换行才结束
{
getchar(); //处理多余换行
changeStr(str);
puts(str);
}
return 0;
}
int changeStr(char* str)
{
if (NULL == str) //空指针检测
return -1;
int i = 0;
int flag = 0; //标记单词,初始化为0,默认句子开头是单词
while (str[i])
{
//碰见非空格字母根据标记判断是否为单词首
if (!isspace(str[i]))
if (0 == flag)
{
str[i] -= 32; //字母转大写
flag = 1; //标记单词,其他字母不会被转大写
}
else
flag = 0; //碰见空格标记,下一个将会是单词首字母需要大写
i++;
}
return 0;
}