浙大版《C语言程序设计(第4版)》题目集参考答案
本题目要求编写程序,输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出已输入的字符,其中所有单词的首字母已改为大写。
输入样例:
How are you?
输出样例:
How Are You?
提交结果:
基本思路:
创建一个变量作为钥匙,当输入字符是空格时就开锁,是字母就不开锁,然后进入改为大写部分,无论当前字符是任何字符都重新上锁,同时为防止第一个单词前面是小写字母,第一次时应该为开锁状态
代码实现:
#include<stdio.h>
int main()
{
int flag = 1;
char ch = '0';
while ((ch = getchar()) != '\n')
{
if (flag == 1)//改为大写
{
flag = 0;//重新上锁
if (ch >= 'a' && ch <= 'z')
{
ch -= 32;
}
}
if (ch == ' ')//空格开锁
{
flag = 1;
}
putchar(ch);
}
}
欢迎提问和纠错,共同讨论一起进步!