首字母变大写
题目来源:
http://acm.zzuli.edu.cn/problem.php?id=1136
题目描述:
输入一个只包含大小写英文字母和空格的句子,将每个单词的第一个字母改成大写字母。
输入
输入一个长度不超过100的英文句子。
输出
请输出按照要求改写后的英文句子。
样例输入
i like ACM
样例输出
I Like ACM
解题思路:
除了第一个单词前面没有空格外,每一个单词的第一个字母前都会有一个空格,因此,第一个字母单独转换,其余的判断a[i-1]是否是空格,如果是,a[i]==toupper(a[i])。最后再输出。
程序代码:
#include<stdio.h>
#include<ctype.h>
int main()
{
int i;
char a[100];
scanf("%c",&a[0]);
a[0]=toupper(a[0]);
printf("%c",a[0]);
for(i=1;;i++)
{
scanf("%c",&a[i]);
if(a[i]=='\n')
break;
else if(a[i-1]==' ')
a[i]=toupper(a[i]);
printf("%c",a[i]);
}
printf("\n");
return 0;
}
错误分析:
1>在使用toupper函数的时候,忘记写ctype.h头文件了;
2>因为第一个单词是单独判断的,所以最后忘记输出a[0]了。