题目 1196: 去掉空格

2024-02-24 12:52
文章标签 题目 空格 去掉 1196

本文主要是介绍题目 1196: 去掉空格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述:

读入一些字符串,将其中的空格去掉。

样例输入:

Hello World
1 2 3
Nice to meet you
abc

样例输出:

HelloWorld
123
Nicetomeetyou
abc

问题分析:

.以下是对代码的分析以及需要注意的问题:

1.缓冲区溢出风险:

声明的 input 数组大小为 81,这是为了容纳80个字符加上字符串结束符 \0。然而,fgets() 函数读取的字符串长度可能会超过 80,这可能导致缓冲区溢出,造成未定义的行为。建议增加对输入字符串长度的检查,以确保不会超过缓冲区的大小。

2.字符串处理逻辑:

当前代码在遇到非空格字符时才输出,这意味着除了空格以外的所有字符都会被输出。这包括换行符 \n,制表符 \t,以及其他可能的特殊字符。这是否符合预期行为取决于实际需求。如果要保留其他特殊字符,需要相应调整逻辑。

3.输出缓冲刷新:

在循环中,每次输出一个字符后并没有刷新输出缓冲区。这意味着输出可能会在换行符之前累积在缓冲区中,并且只有在缓冲区满或者显示调用 fflush(stdout) 时才会输出到终端。建议在输出字符后调用 fflush(stdout),或者在 printf() 语句中包含换行符 \n,以便及时刷新缓冲区。

4.循环逻辑:

当没有更多的输入行时,循环会结束。这是通过 fgets() 返回空指针来判断的。这种方式适用于文件末尾的情况,但如果是交互式输入,用户可能需要通过特定的输入来结束输入。在这种情况下,需要考虑如何让用户退出循环。

5.字符串长度计算:

在计算字符串长度时,使用了 strlen() 函数,但这个函数计算的是整个字符串长度,包括结尾的换行符。在处理字符串时需要注意这一点,以免造成不必要的问题。

代码分析:

这段代码的主要功能是从标准输入逐行读取字符串,并去除每行字符串中的空格,然后将处理后的字符串输出到标准输出。

代码实现:

#include <stdio.h>
#include <string.h>int main() {char input[81]; while (fgets(input, sizeof(input), stdin) != NULL) {int len = strlen(input);for (int i = 0; i < len; i++) {if (input[i] != ' ') {printf("%c", input[i]);}}}return 0;
}

这篇关于题目 1196: 去掉空格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/742169

相关文章

题目1254:N皇后问题

题目1254:N皇后问题 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: N皇后问题,即在N*N的方格棋盘内放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在同一斜线上。因为皇后可以直走,横走和斜走如下图)。 你的任务是,对于给定的N,求出有多少种合法的放置方法。输出N皇后问题所有不同的摆放情况个数。 输入

题目1380:lucky number

题目1380:lucky number 时间限制:3 秒 内存限制:3 兆 特殊判题:否 提交:2839 解决:300 题目描述: 每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

码蹄集部分题目(2024OJ赛9.4-9.8;线段树+树状数组)

1🐋🐋配对最小值(王者;树状数组) 时间限制:1秒 占用内存:64M 🐟题目思路 MT3065 配对最小值_哔哩哔哩_bilibili 🐟代码 #include<bits/stdc++.h> using namespace std;const int N=1e5+7;int a[N],b[N],c[N],n,q;struct QUERY{int l,r,id;}que

2024 年高教社杯全国大学生数学建模竞赛题目——2024 年高教社杯全国大学生数学建模竞赛题目的求解

2024 年高教社杯全国大学生数学建模竞赛题目 (请先阅读“ 全国大学生数学建模竞赛论文格式规范 ”) 2024 年高教社杯全国大学生数学建模竞赛题目 随着城市化进程的加快、机动车的快速普及, 以及人们活动范围的不断扩大,城市道 路交通拥堵问题日渐严重,即使在一些非中心城市,道路交通拥堵问题也成为影响地方经 济发展和百姓幸福感的一个“痛点”,是相关部门的棘手难题之一。 考虑一个拥有知名景区

力扣 739. 每日温度【经典单调栈题目】

1. 题目 理解题意: 1.1. 给一个温度集合, 要返回一个对应长度的结果集合, 这个结果集合里面的元素 i 是 当前 i 位置的元素的下一个更高温度的元素的位置和当前 i 位置的距离之差, 若是当前元素不存在下一个更高温度的元素, 则这个位置用0代替; 2. 思路 本题用单调栈来求解;单调栈就适用于来求当前元素左边或者右边第一个比当前元素大或者小的元素;【单调栈:让栈中的元素保持单调

msyql执行效率的问题以及常见基础面试题目

SQL被称为结构化查询语言(Structured Query Language )是操作和检索关系型数据库的标准语言 SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。 ※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。    Data Definition Language ※ 数据

【微信小程序】如何加空格?

排除: 直接加&nbsp;是没有效果的。直接按空格键是没有效果的。 解决: 给文字加上 decode="{{true}}" 属性之后再用&nbsp; <text decode="{{true}}">医院&nbsp;&nbsp;</text><text>科室</text>

2024 年高教社杯全国大学生数学建模竞赛题目【A/B/C/D/E题】完整论文+代码+结果

编辑 2024国赛A题参考论文https://download.csdn.net/download/qq_52590045/897183672024国赛D题参考论文https://download.csdn.net/download/qq_52590045/897158482024国赛E题参考论文https://download.c

致远个性化之--发起流程页面,去掉【查看流程】按钮

需求 近期在做的项目中,遇到一个需求,想把发起流程页面中的【查看流程】按钮去掉,只让员工预测流程,知道自己的事项流程走向,不让看全局流程图。包含PC端和移动端,以及微协同端。 如下图效果示例: 实现 此需求,只能通过修改页面代码实现。在此不分析实现过程,现把具体实现方式呈现如下,各位如有需求可参照设置。适用版本V9.0,其他版本未进行测试,估计不会有大的差别! PC端 找到文件