c语言在输入字符串时输入空格的方式

2023-10-27

1.最容易的,将一个字符串分为一个一个字符输入 char s[100]; int i=0; while(scanf("%c",&s[i]),s[i]!='/n')i++; s[i]='/0'; //遇到换行停止输入,并且将换行替换为/0 printf("%s/n",s); 但是如果在这段程序前还有其他类型的输入,则需要把回车吃掉,即加一条scanf("%*c"),因为scanf不会将/n或者空格符赋值给字符串,但会赋值给字符输入"%c". 如: int x; scanf("%d",&x); printf("%d/n",x); scanf("%*c"); //用来吃掉输入x时的分隔符号,可以是/n,或者空格之类的; while(scanf("%c",&s[i]),s[i]!='/n')i++; s[i]='/0'; printf("%s/n",s); ps: getch()是从键盘接收 getchar()是从缓冲区读取,也都可以实现这个类似功能。 关于键盘上的回车键,可能大家都知道,按下回车键,在Window下产生两个字符,是/r/n(回车+换行),程序输入文本时遇到"/r/n"转换为/n,输出是将/n转为/r/n(二进制方式下不存在这种方式),这是Window系统的特立独行吧。这与mac和Unix都不相同,不详细说了。 2.char *gets( char *buffer ) 比较简单,gets读取一行,遇到/n结束,它会把/n一并读取,并将/n替换为/0。(/n不会留在缓冲区) char s[100]; gets(s); 如果输入abc def回车,则s中的值为abc def/0 关于程序前面的输入遗留的分隔符和第一种方法一样; 3.fgets(char * s,int size,FILE * stream) 和gets差不多,fgets会读取行尾的/n,然后再添加/0,(/n不会留在缓冲区) char s[100]; fgets(s,40,stdin); 如果输入abc def回车,则s中的值为abc def/n/0 4.scanf("%[^/n]",s) 使用scanf正则表达式,直到遇到/n停止输入,/n不会进入s,会留在缓冲区,需要吃掉,可以scanf("%[^/n]%*c",s)或者getchar()吃掉,这里/n可以换成其他字符。 当然用c++的话有getline,get等 cin.getline会将缓冲区的/n抛弃,cin.get不会(结束符会留在缓冲区)。 其实那都是在默认结束符号为/n时,当结束符设置为'a',则抛弃a,如果a之后的字符仍在缓冲区中。 总结:输入放入缓冲区,函数再从缓冲区读取,每个函数都有不同的处理方式,于是乎就让人纠结起来,我也没讲全,但针对空格是基本够用了。其他高级语言的话处理起来好多了,用c还是有一点点纠结,不过这也是自由吧。 也许有疏漏或不对的地方,见谅。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言在输入字符串时输入空格的方式 的相关文章

  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • 以编程方式检查页面是否需要基于 web.config 设置进行身份验证

    我想知道是否有一种方法可以检查页面是否需要基于 web config 设置进行身份验证 基本上如果有这样的节点
  • 从 MVC 迁移到 ASP.NET Core 3.1 中的端点路由时,具有角色的 AuthorizeAttribute 不起作用

    我正在尝试将我的项目从 UseMVC asp net core 2 2 兼容样式 升级到 UseEndpoint Routing 并且我的所有请求都被重定向到我的验证失败页面 它与声明有关 如果我删除 Authorize Roles Adm
  • C++:重写已弃用的虚拟方法时出现弃用警告

    我有一个纯虚拟类 它有一个纯虚拟方法 应该是const 但不幸的是不是 该接口位于库中 并且该类由单独项目中的其他几个类继承 我正在尝试使用这个方法const不会破坏兼容性 至少在一段时间内 但我找不到在非常量方法重载时产生警告的方法 以下
  • C# 中的接口继承

    我试图解决我在编写应用程序时遇到的相当大的 对我来说 问题 请看这个 为了简单起见 我将尝试缩短代码 我有一个名为的根接口IRepository
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • 检查算术运算中的溢出情况[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 当我“绘制”线条时,如何将点平均分配到 LineRenderer 的宽度曲线?

    我正在使用线条渲染器创建一个 绘图 应用程序 现在我尝试使用线条渲染器上的宽度曲线启用笔压 问题在于 AnimationCurve 的 时间 值 水平轴 从 0 标准化为 1 因此我不能在每次添加位置时都在其末尾添加一个值 除非有一个我不知
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 有没有一种简单的方法可以让 Visual Studio 2015 使用特定的 ToolsVersion?

    使用特定版本构建项目或解决方案时msbuild我可以使用以下命令选择早期的 net 工具链 toolsversion or tv switch C Program Files x86 MSBuild 14 0 bin msbuild tv
  • 是否可以有一个 out ParameterExpression?

    我想定义一个 Lambda 表达式out范围 有可能做到吗 下面是我尝试过的 C Net 4 0 控制台应用程序的代码片段 正如您在 procedure25 中看到的 我可以使用 lambda 表达式来定义具有输出参数的委托 但是 当我想使
  • 我在在线程序挑战编译器中遇到演示错误

    include
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • WinRT 定时注销

    我正在开发一个 WinRT 应用程序 要求之一是应用程序应具有 定时注销 功能 这意味着在任何屏幕上 如果应用程序空闲了 10 分钟 应用程序应该注销并导航回主屏幕 显然 执行此操作的强力方法是在每个页面的每个网格上连接指针按下事件 并在触
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop

随机推荐

  • 区块链技术对人工智能的影响

    区块链技术在最近几年席卷全球 在改变互联网的同时也在改变着其他行业的发展 区块链的技术在当前的发展潜力十分巨大 一些业内人士对区块链技术的预估价值要比互联网高出好几倍 这也说明区块链技术能够影响世界转型格局 人工智能也是近几年兴起的又一热门
  • Extjs 4.2 comboBox下拉复选框 checkbox

    Ext create Ext form field ComboBox name cmb fieldLabel 人员 margin 2 0 2 0 labelWidth 135 labelAlign right editable false
  • ADS系列 - 定向耦合器设计教程1

    相关文章 ADS SystemVue 文章集合页 ADS系列 混频器设计 混频器原理介绍及仿真1 ADS系列 低噪声放大器 LNA 模型下载安装及 LNA仿真设计 Keysight的 SystemVue 介绍及与 ADS 区别对比 Ansy
  • 《银行法律法规》三、银行管理——2、商业银行资产负债管理

    第三章 商业银行资产负债管理 第一节 资产负债管理概述 考点1 资产负债管理的对象 对于商业银行而言 传统资产负债管理的对象即是银行的资产负债表 传统资产负债管理的内涵是 根据外部形势变化及发展战略要求 以资本约束为核心 以资产负债组合管理
  • Hive HiveQL基础知识及常用语句总结

    https blog csdn net u012386109 article details 78214894 https blog csdn net u010385646 article details 53167707 基础语句 CRE
  • Java JDK 安装及环境配置教程

    一 安装 1 安装包 jdk1 8安装包下载路径 2 创建一个英文的文件夹 注意 整个路径不要有中文 建议文件夹直接命名为JDK 3 在该文件夹下创建两个空文件夹 分别为 jdk1 8 和 jre 其中jdk1 8 是我的JDK版本 这个可
  • 还是搜索、索引的问题

    搜索要弄清2个基本问题 1 要搜索出什么类型的entity 2 entity的哪个方面 维度和关键词发生关联的 一般来说可以有多个角度link到entity 一个entity支持多个索引 可以从不同的column检索 对于 web sear
  • elasticsearch ubuntu 安装

    之前 一直听说 Elasticsearch功能强大 我今天安装了下 到pypi里看了下 并安装到虚拟环境中 本以为它就是一个包呢 所以试着用 结果出问题了 后来一看 原来它也是分服务端可客户端的 pypi里的这个是客户端 搭建很简单 所以我
  • Qt Qstring字符串的查找、替换、切割操作

    文章目录 查找 替换replace 字符串切割 查找 直接上代码 include
  • 手把手教你使用simulink配合STM32CUBEMX (生成keil项目实战)

    本文的作者在自学过程中发现该类资料的缺少 以及前人叙述不够完善的情况下 进行了本文的创作 文章将一步一步的讲解如何使用simulink将F4的灯点亮 更多的功能我们一起探索 别的型号的 cpu 大家可以类比进行 1 首先是将MATLAB安装
  • 模拟HashSet

    package chain 单链表 节点 Map中的Entry
  • 国际版阿里云/腾讯云CDN装备运用教程:加快网站拜访速度

    阿里云CDN装备运用教程 加快网站拜访速度 本文旨在为读者供给一个关于阿里云CDN的简要教程 咱们将介绍阿里云CDN的基本概念 资源加快过程 同步资源设置以及与阿里云OSS目标存储的结合 期望经过这篇教程 读者能够更好地了解和利用阿里云CD
  • 感知机

    统计学习方法 此书中 将感知机模型讲解十分清楚 并且推导了损失函数设计原理 随机梯度下降方法求解参数 详细解释了对偶问题求解方法及模型的收敛性 笔者再次学习该模型后 将自己的理解融入本文中 从感知机模型 损失函数设定 计算策略 算法流程这4
  • vue create is a Vue CLI 3 only command and you are using Vue CLI 2.9.6. You may want to run the

    这是应为vue的版本存在更新 需要先卸载vue cli2 然后重新安装vue cli 3 1 卸载vue cli2 npm uninstall vue cli g 或 yarn global remove vue cli 2 安装vue c
  • TCP报文段首部格式介绍

    1 TCP报文段首部格式tu 2 头部各个字段介绍 1 源端口和目的端口 源端口和目的端口字段各占 2 字节 端口是运输层与应用层的服务接口 运输层的复用和分用功能都要通过端口才能实现 2 序号字段 序号字段占 4 字节 要明确的是 TCP
  • WebService报错javax.xml.ws.soap.SOAPFaultException: javax.xml.ws.WebFault.messageName()

    原文地址 http blog csdn net woshixuye article details 14312579 一 发现问题 JAX WS规范是一组XML web services的JAVA API JAXWS RI是其的一个包 用j
  • 面试-大数据-场景题-sql

    1 求5min内浏览次数达到100的用户 LAG和LEAD函数 转载自 有如下场景 某公司网站每日访问量达到10亿级别的访问量 每次访问记录一条数据 数据包含如下字段 用户ID 访问时间 毫秒级 访问页面 要求使用hive求出所有在5分钟内
  • 卷积神经网络的三个特性

    转载 elecfans com emb fpga 20171116580425 2 html 局部感知 形象地说 就是模仿你的眼睛 想想看 你在看东西的时候 目光是聚焦在一个相对很小的局部的吧 严格一些说 普通的多层感知器中 隐层节点会全连
  • 关于C#模拟LED

    如下图 不管是用什么控件 或者是richTextBox 或者是TextBox 等等 我想应该都可以做得出下面这种效果来 但是 本人研究了快半个月了 可以说也没有找到什么很好的头绪 所以 干脆就粘贴在我的博客中了 希望看到的朋友给我个意见或者
  • c语言在输入字符串时输入空格的方式

    1 最容易的 将一个字符串分为一个一个字符输入 char s 100 int i 0 while scanf c s i s i n i s i 0 遇到换行停止输入 并且将换行替换为 0 printf s n s 但是如果在这段程序前还有