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

C语言 字符串输入输出函数、scanf(“%[^\n]“,)可输入空格 、fgets删除换行符

字符串输入函数:

         scanf("%s",数组名) 
        gets(数组名) 
        fgets()  --- 文件流输入函数

函数原型:
        int scanf( const char *format, ... );
        char *gets( char *str );
        char *fgets(char *str,int num,FILE *stream);

区别:
        scanf()把空格字符识别为输入结束
        gets() 会把空格字符也存到数组中
       相同:遇到换行符\n输入结束

                 fgets()会把换行字符\n也会吸收到数组中.

代码:(scanf 和 gets )

#include <stdio.h>
#include <string.h>int main(void)
{char r_buf1[30]={0};char r_buf2[30]={0};int len;//测试scanfscanf("%s",r_buf1);len = strlen(r_buf1);printf("scanf_len=%d\r\n",len);printf("scanf=%s\r\n",r_buf1);// //测试gets// gets(r_buf2);// len = strlen(r_buf2);// printf("gets_len=%d\r\n",len);// printf("gets=%s\r\n",r_buf2);return 0;
}

现象: (scanf 和 gets )

scanf()跳过空格继续输入的处理: 

         scanf("%[^\n]",r_buf1);

        %[^\n] 匹配除换行符以外的任何字符序列;可以指定字符 ,如 %[^b]
        即直到遇到换行符或者指定字符才结束输入,否则默认遇到空格结束输入。

#include <stdio.h>
#include <string.h>int main(void)
{char r_buf1[30]={0};int len;//测试scanf读取空格scanf("%[^\n]",r_buf1);  //测试指定字符 scanf("%[^b]",r_buf1);len = strlen(r_buf1);printf("scanf_len=%d\r\n",len);printf("scanf=%s\r\n",r_buf1);return 0;
}

fgets()代码与现象:

#include <stdio.h>
#include <string.h>int main(void)
{char r_buf[30]={0};int len;//测试fgetsfgets(r_buf,30,stdin);len = strlen(r_buf);printf("fgets_len=%d\r\n",len);printf("fgets=%s\r\n",r_buf);return 0;
}

        字符数组有效字符为6个 并且多输出了一次换行

        因为  fgets()会把换行字符\n也会吸收到数组中.

        可以把字符串数组的第5号元素改为'\0', 即能删除多出的一次换行
        r_buf[5]='\0';        下面有讲到通过strcspn函数定位到\n的元素索引位置的函数。

strcspn() 处理fgets的换行符

头文件:#include <string.h>

函数原型:size_t strcspn( const char *str1, const char *str2 );        size_t 等于 int 类型

函数功能:函数返回str1 开头连续n个字符都不含字符串str2内任何某个字符的字符数。

#include <stdio.h>
#include <string.h>int main(void)
{/*测试strcspn*/int n;char str1[]= "hello world";char str2[]= "abo";n = strcspn(str1,str2);printf("n=%d\r\n",n);/*删除fgets吸收的换行符\n*/char r_buf[30]={0};int len;fgets(r_buf,30,stdin);len = strcspn(r_buf,"\n");r_buf[len] = '\0';printf("fgets=%s\r\n",r_buf);return 0;
}

字符串输出函数:

        printf(“xxx%s”,数组名)
        puts(数组名)  
        fputs()   --- 文件流输出函数

函数原型:
        int printf( const char *format, ... );
        int puts( char *str );
        int fputs( const char *str, FILE *stream );

区别:
       printf()可以放描述语 
        puts()自动加换行符
相同:默认输出到STDOUT标准输出上.

相关文章:

C语言 字符串输入输出函数、scanf(“%[^\n]“,)可输入空格 、fgets删除换行符

字符串输入函数&#xff1a; scanf&#xff08;"%s"&#xff0c;数组名&#xff09; gets&#xff08;数组名&#xff09; fgets&#xff08;&#xff09; --- 文件流输入函数 函数原型&#xff1a; int scanf( const char *format, ...…...

【蓝桥杯每日一题】推导部分和——带权并查集

推导部分和 2024-12-11 蓝桥杯每日一题 推导部分和 带权并查集 题目大意 对于一个长度为 ( N ) 的整数数列 A 1 , A 2 , ⋯ , A N A_1, A_2, \cdots, A_N A1​,A2​,⋯,AN​ &#xff0c;小蓝想知道下标 ( l ) 到 ( r ) 的部分和 ∑ i l r A i A l A l 1 ⋯ A r \sum_{…...

Linux 磁盘满了怎么办?快速排查和清理方法

当 Linux 磁盘满了&#xff0c;会导致系统无法正常运行&#xff0c;比如无法写入文件、服务停止、甚至系统崩溃。因此&#xff0c;快速排查并清理磁盘空间是非常重要的。以下是详细的排查和解决步骤&#xff1a; 一、快速定位磁盘占用原因 1. 检查磁盘使用情况 使用 df 命令查…...

【专题】2024年中国新能源汽车用车研究报告汇总PDF洞察(附原数据表)

原文链接&#xff1a; https://tecdat.cn/?p38564 本年度&#xff0c;国家及地方政府持续发力&#xff0c;推出诸多政策组合拳&#xff0c;全力推动汽车产业向更高质量转型升级&#xff0c;积极鼓励消费升级&#xff0c;并大力推行以旧换新等惠民生、促发展举措。尤为引人注目…...

数据结构之链表笔试题详解

一&#xff1a;移除链表元素 我们很容易就可以想到一个解决方案&#xff1a;再创建一个链表&#xff0c;把不是val的结点拿过来尾插。 这样确实可以但是&#xff0c;我们每次尾插都需要遍历一遍整个链表&#xff0c;这样时间复杂度就变成了O(n^2)&#xff0c; 因此我们不妨设…...

结构化的Prompt

资源库&#xff1a; AI 提示词-WayToAGI精选高效的AI提示词库&#xff0c;助力创作者和开发者解锁人工智能的潜力。通过我们的提示词和策略&#xff0c;优化您的AI工具使用效率&#xff0c;激发创意思维&#xff0c;提升产出质量。https://www.waytoagi.com/prompts?tag6 结构…...

【数字化】华为数字化转型架构蓝图

导读&#xff1a;华为的数字化转型规划团队在2016年年底基于对愿景的系统诠释&#xff0c;整合出了数字化转型架构蓝图。该蓝图共分为5层&#xff0c;旨在通过数字化转型实现客户交互方式的转变、作战方式的转变、公司各平台业务能力的数字化、服务化以及运营模式的转变。 目录…...

最新全开源IM即时通讯系统源码(PC+WEB+IOS+Android)部署指南

全开源IM&#xff08;即时通讯&#xff09;系统源码部署是一个复杂但系统的过程&#xff0c;涉及多个组件和步骤。以下是一个详细的部署指南&#xff0c;旨在帮助开发者或系统管理员成功部署一个全开源的IM系统&#xff0c;如OpenIM。      IM即时通讯系统源码准备工作   …...

go 跨平台打包

GOARCH‌是Go语言中的一个环境变量&#xff0c;用于指定目标平台的底层架构。在Go的交叉编译过程中&#xff0c;‌GOARCH‌决定了编译出的二进制文件将在哪种硬件架构上运行。 GOARCH的常见值 ‌amd64‌&#xff1a;64位 x86 架构‌386‌&#xff1a;32位 x86 架构‌arm‌&am…...

C++ 给定字符串,然后给出开始要取的位置,返回取到的信息

3 happy new year 7 year 1 new 4 new year year error input #include <stdio.h> #include <string.h> void strmcpy(char* s, char* t, int m); int main() {int repeat, m;char t[1000], s[1000];scanf("%d", &repeat);getchar(); //吸收换行符in…...

【树莓派4B】MindSpore lite 部署demo

一个demo&#xff0c;mindspore lite 部署在树莓派4B ubuntu22.04中&#xff0c;为后续操作开个门&#xff01; 环境 开发环境&#xff1a;wsl-ubuntu22.04分发版部署环境&#xff1a;树莓派4B&#xff0c;操作系统为ubuntu22.04mindspore lite版本&#xff1a;mindspore-li…...

Idea汉化插件Datagrip汉化插件

汉化插件 ‍ ‍ Chinese (Simplified) Language Pack / 中文语言包 ‍ 插件地址 ‍ 安装完了之后,如果还不是中文的怎么办 ‍ 需要手动设置 Seetings -> Appearance & Behavior -> System Settings -> Language and Region -> Language 修改为 [ Chi…...

精彩回顾|Cocos开发者沙龙长沙站

长沙-不一样 Cocos 开发者沙龙长沙站&#xff0c;完全超出了我们的预期&#xff0c;一开始还担心没有太多人报名。最后发现&#xff0c;全场爆满&#xff0c;座无虚席。 <<< 左右滑动见更多 >>> 许多小伙伴曾反馈过&#xff0c;在以往的开发者沙龙回顾文章中…...

算法日记 49 day 图论(A*算法)

这算是算法的最后一篇了&#xff0c;原本A*之前还有一些相关的最短路径算法的&#xff0c;比如dijkstra的堆优化&#xff0c;SPFA等等&#xff0c;但是有些我没看懂&#xff0c;就不写了&#xff0c;用A*做个结尾。 题目&#xff1a;骑士的攻击 127. 骑士的攻击 (kamacoder.co…...

服务器批量清理redis keys,无法适用客户端必须直连的情况

在 Redis 中&#xff0c;批量清理指定模式的键&#xff08;例如 memberCardData:*&#xff09;可以通过多种方法来实现。需要注意的是&#xff0c;Redis 的命令执行是单线程的&#xff0c;因此对大量键进行操作时可能会阻塞服务器。以下是几种常见的方法&#xff1a; shell K…...

Grafana配置告警规则推送企微机器人服务器资源告警

前提 已经部署Grafana&#xff0c;并且dashboard接入数据 大屏编号地址&#xff1a;Node Exporter Full | Grafana Labs 创建企微机器人 备注&#xff1a;群里若有第三方外部人员不能创建 机器人创建完成&#xff0c;记录下来Webhook地址 Grafana配置告警消息模板 {{ define &…...

数字货币金融研究,深度学习虚拟币价格预测 数据集 市值top20 (2014年—2024年)

比特币&#xff0c;以太坊&#xff0c;狗狗币&#xff0c;屎币&#xff0c;模因币 声明 此数据集的目的是 用于数字货币金融研究&#xff0c;深度学习虚拟币价格预测 1、数据集 2014年——2024年 市值top20 比特币&#xff0c;以太坊&#xff0c;屎币&#xff0c;狗狗币交易…...

druid.properties图标是齿轮

一、问题 在IDEA中&#xff0c; druid.properties图标是齿轮 二、原因 2023版本开始&#xff0c;IDEA新的UI的问题 三、解决方法 1、点击右上角的齿轮图标 2、点击Settings 3、Appearance & Behavior---->New UI---->取消勾选“Enable new UI”---->右下角OK 4…...

【图像处理】利用numpy、opencv、python实现车牌检测

| 利用opencv实现车牌检测 整体流程涉及5个部分 图像通道转换对比度增强边缘连接二值化边界区域裁剪 图像通道转换 将RGB图像转换为HSV图像&#xff0c;仅保留V通道。V通道表示颜色的明暗&#xff0c;常用于图像对比度拉伸、直方图均衡化等流程。 原图像&#xff1a; V通…...

ModuleNotFoundError: No module named ‘torchvision.transforms.functional_tensor‘

问题&#xff1a; 运行代码时&#xff0c;报错&#xff1a; … File “/home/xzy/anaconda3/envs/groundinggpt/lib/python3.10/site-packages/pytorchvideo/transforms/augmix.py”, line 6, in from pytorchvideo.transforms.augmentations import ( File “/home/xzy/anac…...

Cocos笔记

Cocos笔记 好用的Api 碰撞体范围检测 包围盒范围检测(性能对比碰撞检测稍好) 多边形碰撞体和矩形相交检测 设置父节点并同步位置 外部增加并调用回调函数 网址 其他 代码混淆工具 引用加载过久修改tsconfig.json脚本增加以下代码 类型写法(举例) 刮刮乐脚本 修改后的挖图(…...

如何用OpenCore Legacy Patcher让老款Mac焕发新生:终极完整教程

如何用OpenCore Legacy Patcher让老款Mac焕发新生&#xff1a;终极完整教程 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher是一款革…...

魔兽争霸3帧率优化完全指南:从技术原理到实战调优

魔兽争霸3帧率优化完全指南&#xff1a;从技术原理到实战调优 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一、性能瓶颈诊断&#xff1a;定位魔兽争…...

二次元创作助手:OpenClaw调用Qwen3.5-9B自动生成同人图描述

二次元创作助手&#xff1a;OpenClaw调用Qwen3.5-9B自动生成同人图描述 1. 为什么需要二次元创作自动化&#xff1f; 作为一个长期混迹ACGN圈子的内容创作者&#xff0c;我每天要花费大量时间在Pixiv、微博超话和LOFTER上浏览同人作品。最头疼的莫过于看到一张惊艳的插图却想…...

USART串口通信

一、串口 USART USART&#xff08;Universal Synchronous/Asynchronous Receiver/Transmitter&#xff0c;通用同步 / 异步收发器&#xff09; 是一种全双工、串行、逐位传输的通信接口&#xff0c;核心是把单片机 / 处理器的并行数据转为串行数据发送&#xff0c;或把串行数据…...

LoRA训练助手效果展示:GPT模型微调前后对比

LoRA训练助手效果展示&#xff1a;GPT模型微调前后对比 1. 引言 你是否曾经遇到过这样的情况&#xff1a;用GPT模型生成的内容总是差那么点意思&#xff0c;要么风格不对&#xff0c;要么专业度不够&#xff0c;要么就是不符合你的特定需求&#xff1f;就像让一个通才来处理专…...

Embedded Coder实战:5分钟搞定PID控制器的C代码生成(附完整配置流程)

Embedded Coder实战&#xff1a;5分钟搞定PID控制器的C代码生成&#xff08;附完整配置流程&#xff09; 在工业自动化领域&#xff0c;PID控制器就像一位不知疲倦的调节大师&#xff0c;默默维持着无数设备的稳定运行。想象一下&#xff0c;当你需要将这套经典算法部署到资源有…...

RTX 50系显卡用户看过来:在Windows上为CUDA 12.8和PyTorch Nightly版安装Triton的实战记录

RTX 50系显卡用户看过来&#xff1a;在Windows上为CUDA 12.8和PyTorch Nightly版安装Triton的实战记录 当GeForce RTX 50系列显卡遇上PyTorch Nightly和CUDA 12.8&#xff0c;这可能是目前最前沿的AI开发环境组合。但官方文档和主流教程往往跟不上硬件迭代的速度&#xff0c;让…...

学术研究必备:8款AI论文写作工具,爱毕业aibiye高效实用

人工智能技术在学术研究领域的深度整合为论文撰写流程带来了革命性变革&#xff0c;通过8款核心智能工具的协同应用——包括文献智能分析系统、自动化内容生成引擎以及文本精准优化平台——研究者能够实现从数据挖掘到学术表达的全程智能化&#xff0c;显著提升文献处理效率与学…...

Legcord:革命性Discord轻量级客户端,10大特性全面解析

Legcord&#xff1a;革命性Discord轻量级客户端&#xff0c;10大特性全面解析 【免费下载链接】ArmCord Legcord is a custom client designed to enhance your Discord experience while keeping everything lightweight. 项目地址: https://gitcode.com/gh_mirrors/ar/ArmC…...