Problem 1136: 首字母变大写
题目来源 :
http://acm.zzuli.edu.cn/problem.php?id=1136
题目描述
输入一个只包含大小写英文字母和空格的句子,将每个单词的第一个字母改成大写字母。
输入
输入一个长度不超过100的英文句子。
输出
请输出按照要求改写后的英文句子。
样例输入
i like ACM
样例输出
I Like ACM
题意描述:
将一个句子里的每个单词的首字母都大写。
解题思路:
首先判断每个单词的首字母的位置,然后变成大写,设一个变量阻止它继续读取这个单词的其他字母。
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
char str[110];
int i,len,find=0;
gets(str);
len=strlen(str);
for(i=0;i<len;i++)
{
if(str[0]>='a'&&str[0]<='z')
str[0]=str[0]-32;
if(str[i]==' ')
{
find=1;
continue;
}
if(find==1)
{
if(str[i]>='a'&&str[i]<='z')
{
str[i]=str[i]-32;
}
find=0;
}
}
for(i=0;i<len;i++)
printf("%c",str[i]);
printf("\n");
return 0;
}
错误分析:
没有想到设置标量这一点;
没有循环输出和加换行。