当前位置: 首页 > news >正文

串练习--------首字母大写HDOJ2026

题目:HDOJ 2026

代码

/* HDOJ 2026 https://acm.hdu.edu.cn/showproblem.php?pid=2026 首字母大写 */ #include<iostream> #include<cstring> using namespace std; char a[105]; int main() { while (fgets(a, sizeof(a), stdin)) { //getchar();这里不需要消除换行符吗:不需要,fgets会读取一行全部的内容包括换行符 int len = strlen(a);//strlen是一直在变的,所以要用变量暂存 for (int i = 0; i < len; i++) { if (i == 0||a[i-1]==' ') { if (a[i] >= 'a' && a[i] <= 'z') {//这里首先要判断是不是大小写 a[i] = a[i] - 32; /* 也可以这么实现 a[i]+='A'; a[i]-='a'; */ } } } printf("%s", a);//这样输出更加简单,这里不需要另外输出换行符,因为fgets会读取换行符,所以输出时换行符会跟着输出 } return 0; }

反思

1.考察的知识点:字符串的输入输出

2.踩的坑:首先是没有暂存strlen的值,导致遍历时和输出时出现缺少内容问题,

然后是没有搞清楚strlen和sizeof分别代表什么,搞混了,sizeof求的是整个数组的存储空间,与内容无关,而strlen求的是字符串的长度。

然后,是没有考虑单词首字母本来就是大写的情况,

然后,每次输入时,由于fgets的特殊性,会输入一行内包含换行符的所有内容,并在末尾加上换行符,比如: hello World!\n\0,然后上次输入导致后续残留的内容就会被截断,前面的就会被覆盖,所以不用清空也无影响,

然后输出时利用printf和%s,更加简单。

3.可以改进的地方:无。

http://www.cnnetsun.cn/news/116048.html

相关文章:

  • WebSocket 对比 MQTT通信优势
  • 基于springboot面料花型试衣系统
  • 域名被污染是什么意思?还能不能继续使用?
  • Python大数据基于深度学习的音乐推荐系统-250326--论文
  • Python大数据影评情感分析可视化及推荐系统的设计与实现_u5ck1y17_论文
  • AI Agent设计模式大揭秘:9种架构让你从编程小白变身架构师!
  • Python大数据基于Spark的南昌房价数据分析系统的设计与实现_45i0b357_论文
  • 9 个降AI率工具,自考人必备的降重神器!
  • 9 个降AI率工具,自考人必备!
  • 旅行记录应用新建旅行 - Cordova OpenHarmony 混合开发实战
  • 9 个降AI率工具推荐,继续教育学生必备
  • Java八股文(Java基础面试题)
  • 邦芒忠告:职场中没有好人缘的10种人
  • 基于Spring Boot人才招聘管理系统
  • 拒绝“魔法值”注入:手把手教你实现 Spring Boot 高性能枚举校验注解 @InEnum
  • 国内容易上手的claudecode一键配置指南
  • 复原IP地址
  • Redis 发布订阅
  • JQuery支持WebUploader完成百万文件断点续传的原理?
  • Vue3如何结合组件实现大文件分片的并行上传优化?
  • 类型分布统计-Cordovaopenharmony多维分析实战
  • 四时四名,一山万象:朝鲜金刚山的锦绣风姿
  • 基于Spring Boot的果蔬销售系统
  • Scala Collection(集合)
  • 介观交通流仿真软件:DynusT_(11).交通事件管理
  • django基于Python天气分析系统
  • python基于大数据的分析长沙旅游景点推荐系统
  • 基于Django的学分管理系统
  • 广度优先遍历与最短路径
  • 通信系统仿真:通信系统基础理论_(11).光通信技术