news 2026/4/16 12:12:28

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
串练习--------首字母大写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.可以改进的地方:无。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 12:27:16

光伏并网系统这玩意儿说白了就是让太阳能板发的电乖乖并入电网。今天咱们直接拆开看里面的几个硬核模块,手把手撸点仿真代码,搞明白这些电路和控制策略到底怎么玩

三相光伏并网仿真模型 Boost&#xff0b;三相逆变器 PLL锁相环 MPPT最大功率点跟踪控制(扰动观察法) dq解耦控制 电流内环电压外环的并网控制策略先来看Boost电路这哥们。光伏板的输出电压经常不够高&#xff0c;得靠它来抬电压。核心逻辑就是调节占空比让输出电压稳定在设定值…

作者头像 李华
网站建设 2026/4/16 10:55:12

ARMv8-M架构IPSR寄存器读取函数解析

这是一个用于 ARMv8-M 架构 的 C 语言内联汇编函数&#xff0c;用于读取 IPSR&#xff08;中断程序状态寄存器&#xff09; 的值。 函数功能解析&#xff1a; 1. 函数声明 static inline uint32_t getipsr(void)static inline&#xff1a;内联函数&#xff0c;编译器会将函数…

作者头像 李华
网站建设 2026/4/16 10:56:04

SpringBoot+vue养老院运营管理系统

摘 要 目前&#xff0c;我国人口逐步进入老龄化&#xff0c;老人院事业在我国将会进入发展期&#xff0c;更多的年轻人会选择把家里的老人送到养老院&#xff0c;让自己的父母能够安享晚年。随之而来的是老人的安全问题&#xff0c;儿女会担心老人们能否在养老院幸福安全地生活…

作者头像 李华
网站建设 2026/4/16 11:04:22

基于springboot生鲜农产品保鲜及溯源管理系

基于Spring Boot的生鲜农产品保鲜及溯源管理系统是一个集成了多种先进技术的信息化管理系统&#xff0c;旨在提高生鲜农产品供应链的透明度和信息化水平。以下是对该系统的详细介绍&#xff1a; 一、系统背景与意义 随着人们生活水平的提高和健康意识的增强&#xff0c;消费者对…

作者头像 李华
网站建设 2026/4/16 10:59:00

基于springboot企业支付费用管控平台

基于Spring Boot的企业支付费用管控平台是一个集成了多种支付管理和费用控制功能的综合性系统。以下是对该平台的详细介绍&#xff1a; 一、平台概述 该平台以Spring Boot框架为核心&#xff0c;结合前端技术&#xff08;如Vue.js等&#xff09;和关系型数据库&#xff08;如My…

作者头像 李华
网站建设 2026/4/12 22:55:41

C#面试题分享(一)

1.什么是C#&#xff0c;它的主要特点是什么&#xff1f; C#&#xff08;发音为C Sharp&#xff09;是一种由微软开发的现代、通用、面向对象的编程语言&#xff0c;作为.NET框架的一 部分&#xff0c;主要用于开发Windows应用、Web应用、移动应用等。其主要特点包括&#xff1a…

作者头像 李华