7-2 单词首字母大写 (15 分)
7-2 单词首字母大写 (15 分)
本题目要求编写程序,输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:#
输入给出一行字符。
输出格式:#
在一行中输出已输入的字符,其中所有单词的首字母已改为大写。
输入样例:#
How are you?
结尾无空行
输出样例:#
How Are You?
结尾无空行
代码:#
这种方法还是很妙的,用一个flag作为判断大写标志,有一种掌控感,有的放矢的感觉,代码得输入隔得很开,有一种不怕你跑的远反正还在我手掌心里的感觉,很妙
在输入字符的时候,不是所有人都会遵守规则的,有的人就是喜欢瞎胡按,有的就是一开始就按回车,或者有的一开始就按空格,并不是输入小写或者大写字母,甚至有的可能输入数字,这时候就要有各种的if来设置保险锁
有时候程序读用户的输入的方式真的很奇妙,不是像我们大脑里预演的非要一个一个字符或者一步步的来进行输入,只要能够在逻辑上连接起来就有可以连续输入然后判断执行结果的可能,这个程序就是这样,所以还是大胆的写这种有掌控感的代码,慢慢的摸清程序读输入和执行输出的规律
用了一种输入和判断同时前进的方法,我写代码包括做事情是有一种习惯的就是把一件事做完之后在做另一件事,总觉得两件事同时进行不纯粹有时候还可能出现问题,现实中是效率变低,代码是会出现bug,但是这题就让我眼前一亮,当op为空格时,怎么操作下一个字符,让用户输入呗,你要是不输入也没事,我下面有一个是不是小写字母的条件判断,照样没问题,用户输入合法了,就进入条件然后执行语句变成大写字母。
所以就很妙,这个代码整体很连贯很通顺
我习惯把代码一个一个部分的拆解开,就算是小程序很短的代码,我也会习惯做这件事,但是这个代码让我感觉不能拆分开来分析功能
这个代码要纪念一下
#include "stdio.h"
int main()
{
char op;
op = getchar();
int flag = 1;
while(op != '\n')
{
if(flag == 1)
{
flag = 0;
if(op >= 'a' && op <= 'z')
{
op -= 32;
}
}
if(op == ' ')
{
flag = 1;
}
putchar(op);
op = getchar();
}
return 0;
}
作者:Evinci
出处:https://www.cnblogs.com/evinci/p/17123990.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理