C语言中fgets()函数回车符相关的问题

article/2025/10/9 17:29:52

fgets函数

目录

  • fgets函数
    • fgets函数与gets函数
    • fgets函数包含回车符
      • 原因
      • 消去回车符
        • 需要消去回车符的情况
          • 任务描述
          • 编程要求
          • 测试说明
          • 思路
          • 代码
          • 问题关键
        • 消去操作

fgets函数与gets函数

请移步下方链接,其中包含了scanf函数gets函数以及fgets函数的区分总结:

二维字符数组的三种输入方式浅析

fgets函数包含回车符

原因

  • 字符数组,回车符也可包含在其中

  • fgets函数将回车从缓冲区取出来自己留下(而gets函数是将回车从缓存区取出扔掉),因此用fgets函数输入字符串时,字符串末尾将携带有回车符缓冲区清空

    getchar()吸收回车符是从缓冲区中读取,因此在用fgets输入时,想用getchar()吸收末尾的回车符是不可行

消去回车符

需要消去回车符的情况

以字符插入题为例

任务描述

题目描述:输入两个字符串ab,将b串中的最大字符插入到a串中最小字符后面。

编程要求

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。 输入 输入一段文字 输出 输入两个字符串ab

测试说明

样例输入: MynameisAmy MynameisJane 样例输出: MynameisAymy 提示: 字符串长度不超过100

思路
  1. 输入两个字符串
  2. 分别遍历,找到a串最小的字符及其位置和b最大的字符
  3. 分三段输出:a串最小字符及其前的内容,b串最大的字符,a串剩余的部分
代码
#include <stdio.h>
#include <string.h>
int main(void)
{/*********Begin*********/char a[100],b[100];int i=0,j=0,len1=0,len2=0,mark=0;char min,max;//输入a,b字符数组fgets(a,100,stdin);fgets(b,100,stdin);//得到数组长度,便于后续遍历len1=strlen(a);len2=strlen(b);//输入5个字符,但通过编译可知len1和len2的长度实际上为6,说明尾部的回车符也被录入字符数组中//因为是通过ASCII码来寻找数组中最大和最小的字符,这样的情况就会导致回车符干扰排序,无法输出正确的结果//找到a串最小的字符及其位置min=a[0];//处理回车符,这里有两种方法(二选一即可)://法一:将'\n'改为'\0'a[len1-1]='\0';//法二:将循环止于回车符前,即i<len1-1for(i=0;i<len1-1;++i){if(a[i]<min){min=a[i];mark=i;}}//找到b最大的字符max=b[0];for(j=0;j<len2;++j){if(b[j]>max){max=b[j];}}//分三段输出://a串最小字符及其前的内容for(i=0;i<=mark;++i){printf("%c",a[i]);}//b串最大的字符printf("%c",max);//a串剩余的部分for(i=mark+1;i<len1;++i){printf("%c",a[i]);}printf("\n");/*********End**********/return 0;
}
问题关键

image-20221229184726338

消去操作

  1. 先用strlen函数得出该字符串长度(以字符数组a为例)

  2. 法一:将'\n'改为'\0'

    #include<stdio.h>
    #include<string.h>
    int main(){char a[100];int len=0;fgets(a,100,stdin);len=strlen(a);a[len-1]='\0'return 0;
    }
    

    法二:将循环止于回车符前,即i<len-1

    #include<stdio.h>
    #include<string.h>
    int main(){char a[100];int len=0,i=0;fgets(a,100,stdin);len=strlen(a);for(i=0;i<len-1;++i){}return 0;
    }
    

http://chatgpt.dhexx.cn/article/u0NPNrOZ.shtml

相关文章

c语言中fgetc函数的介绍

点击上方蓝字关注我&#xff0c;了解更多咨询 1、fgetc函数返回的字符实际上是文件流中位置指针指向的字符。 当fgetc函数读取错误时&#xff0c;返回EOF并设置文件错误标志位。 2、该函数以无符号char强制转换为int的形式返回读取的字符&#xff0c;如果到达文件末尾或出现读错…

fgets()函数的详解-使用技巧-C语言基础

这篇文章要探讨的是“fgets()函数的详解以及使用时需要注意的一些细节”。涉及fgets()函数的应用和需要注意的问题。属于C语言基础篇&#xff08;持续更新&#xff09;。 fgets()&#xff08;函数原型&#xff1a;char *fgets(char *restrict str, int size, FILE *restrict s…

男女声语音转换

男女声特点 &#xff08;此部分转载自https://blog.csdn.net/u011389706/article/details/78965233&#xff09; 男女声基本区别 男女声主要区别在于男女声基音频率&#xff08;pitch frequency&#xff09;的高低。一般女声的音调比男声的音调高&#xff0c;这种不同主要是反…

最新游戏陪玩语音聊天系统源码+视频搭建教程

一个人的游戏叫孤独&#xff0c;一群人的游戏才是乐趣&#xff0c;随着电竞产业在国内的快速发展&#xff0c;游戏陪练行业也迅速成长&#xff0c;现在很多游戏玩家为了追求更高质量的游戏体验感&#xff0c;往往会在玩游戏的过程中找陪练&#xff0c;通过陪玩系统进行预约游戏…

伪造微信语音文件的过程分析

说实话&#xff0c;写这篇《续》&#xff0c;小编是很纠结的。我们绝不是要传授犯罪方法&#xff0c;而是要告诉大家&#xff0c;伪造微信语音聊天记录的行为是如何进行的。&#xff08;安卓实测&#xff0c;苹果略有不同&#xff09; 一、微信语音文件的存储 关于这一点&…

微信PC端技术研究(2)-保存聊天语音

微信PC端技术研究-保存聊天语音 转载地址&#xff1a;[原创]微信PC端技术研究(2)-保存聊天语音-软件逆向-看雪论坛-安全社区|安全招聘|bbs.pediy.com 0x0. 前言 最近又学习了某位大佬用CE的方法&#xff0c;大佬的一句话有点醍醐灌顶&#xff0c;然后有了新的感觉&#xff0…

将微信语音消息转换为 mp3

获取语音文件&#xff08;.silk&#xff09; 需要在电脑上实现。首先&#xff0c;查看你的微信 Mac 版本将数据存放在哪个目录下&#xff0c;我的是在这个目录下&#xff1a; /Users/henry/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.te…

WX Backup - 免费微信聊天记录备份导出与查看工具 (可提取图片/视频/语音)

微信绝对是一个让人爱恨交织的 APP&#xff0c;它在国内几乎完全占据了人们的社交以及生活的方方面面&#xff0c;但腾讯却并没有为微信提供好用的「聊天记录」备份导出和查看的功能。 WX Backup 是一款完全免费的微信聊天记录备份导出工具&#xff0c;支持 Windows 和 Mac&…

微信语音文件转换mp3

1、先找到手机里面的音频文件&#xff08;.amr&#xff09; 2、下载软件silk2mp3 ①双击silk2mp3.exe ②选择文件 ③开始转换 3、本来以为电脑客户端中也能找到相应的文件&#xff0c;但是发现是加密过的&#xff0c;不能用&#xff1b;所以只能使用android手机找到对应文件…

怎么导出微信语音【亲测有效】

在手机上长按你想导出的语音&#xff0c;点收藏 来到我的-收藏&#xff0c;打开刚才收藏语音&#xff0c;右上角三个点点&#xff0c;点转存为笔记 ok放下手机 来到pc端微信 - 收藏&#xff0c;找到刚才的笔记 进去&#xff0c;选中 - 右键 - 复制 发给你的文件传输助手 找到…

微信语音转换成mp3文件保存的简单详细步骤

目录 读者手册 一、前言 二、操作步骤一 把语音转化为silk文件&#xff08;silk后缀的文件&#xff09; 1.长按语音收藏&#xff08;手机操作&#xff09; 2.找到主页收藏 3.找到收藏的语音 4.转存为笔记 5.点击笔记里面的语音&#xff08;下面全部电脑操作&#xff0…

如何导出你的微信语音

苏生不惑第145 篇原创文章&#xff0c;将本公众号设为星标&#xff0c;第一时间看最新文章。 关于微信之前写过以下文章&#xff0c;有兴趣可以点击查看&#xff1a; 那些你可能不知道的微信奇技淫巧 那些你可能不知道的网络冷知识奇技淫巧 一个骚操作&#xff0c;公众号粉丝破…

简单3步:微信语音转成mp3

ACM亚洲区域赛获奖者 北漂女程序员 喜欢就关注我吧&#xff01; 在家人眼里&#xff0c;我学的专业就是打杂的。 前天我的嫂子问我怎么把微信聊天语音转换成mp3格式保存分享。 咔咔咔&#xff0c;教程来了。 1&#xff0c;把微信语音信息保存下来 2&#xff0c;找到微信语音信息…

在电脑上微信无法语音聊天,微信听不到语音声音

联想笔记本Windows11微信3.7.6.44 新更新的window系统&#xff0c;有线耳机在其他网页和应用上播放语音都是正常的&#xff0c;耳机肯定没坏&#xff0c;唯独在微信上无法播放语音和语音电话。 解决办法&#xff1a; 1、右击开始菜单&#xff0c;&#xff08;就是Windows开机…

一秒语音是什么软件,微信一秒语音包软件

微信一秒语音包软件是一款专为使用微信聊天的伙伴设计的&#xff0c;汇集了海量聊天语音包素材&#xff0c;并且可以实时更新语音包素材&#xff0c;所以的语音素材内容实时上线热门语音包&#xff0c;操作方法简单&#xff0c;拥有男声、女声等语音&#xff0c;还可以在这里制…

PHP代码审计二(通用代码审计思路)

总结一下在PHP代码审计中常用到的代码审计思路 文章目录 敏感函数逆向回溯参数过程espcms注入挖掘案例 通读全文代码根据功能点定向审计BugFree重装漏洞案例 敏感函数逆向回溯参数过程 根据敏感函数来逆向追踪参数的传递过程&#xff0c;是目前使用的最多的一种方式&#xff…

php代码审计实战(一)

前言:这套漏洞好水,为什么审他呢&#xff1f;原因是虽然一直挖漏洞 也用白盒摸出过不少洞,但是还没有彻彻底底的通审过一套系统 所以就找了套简单的摸摸鱼 源码:熊海CMS_1.0 安装方法:这里是用宝塔直接搭建的 ①数据库 需要宝塔建立一个数据库导入那个数据库文件就好了 然后…

PHP代码审计环境配置教程

PHP代审环境配置 1.vscode的配置2.PHPstudy配置3.使用xdebug调试代码 1.vscode的配置 安装插件 code runner PHP debug 2.PHPstudy配置 软件管理 — PHP设置 — 开启XDebug调试组件 开启XDebug调试组件之后&#xff0c;可以看到php.ini文件底部多了如下几行&#xff1a; [X…

PHP代码审计系列(一)

PHP代码审计系列&#xff08;一&#xff09; 本系列将收集多个PHP代码安全审计项目从易到难&#xff0c;并加入个人详细的源码解读。此系列将进行持续更新。 extract变量覆盖 源码如下 <?php$flagextractFlag.txt; extract($_GET);if(isset($shiyan)){ $contenttrim(f…