c/c++中读入字符串(包含空格)

2023-11-05

1.scanf函数

scanf函数一般格式为scanf(“%s”,st),但scanf默认回车和空格是输入不同组之间的间隔和结束符号,所以输入带空格,tab或者回车的字符串是不可以的。

解决方法如下

利用格式符“%[]”它的作用为扫描字符集合。Scanf(“%[^c]”,str); 其中“c”是一个具体的字符常量(包括控制字符)。当输入字符串时,字符“c”将被当作当前输入的结束符。利用此格式符就可以由编程者自己指定一个输入结束符。例如:scanf("%[a-zA-Z0-9]",str)表示只匹配输入是大小写字母和数字,遇到非数字和字母时输入结束。

其他几种常用形式:

scanf("%[^\n]",str);    //遇到回车截止
scanf("%n[^\n]",str);    //匹配n个字符,遇到回车截止

2.cin函数

cin是C++中最常用的输入语句,包含头文件#include <iostream>中,当遇到空格或者回车键即停止。

3.gets()

可以无限读取,以回车结束读取,C语言中的函数,在C++中运行会产生bug。

在C11标准中已被正式删除,建议不要用

4. getline()(包含头文件#include <string>)

若定义变量为string类型,注意不是字符型数组。则要考虑getline()函数。

getline(cin,str);

5.cin.get (char *str, int maxnum)

cin.get()函数可以接收空格,遇回车结束输入。

6.cin.getline (char *str, int maxnum)(包含头文件#include <string>)

cin.getline()函数可以同cin.get()函数类似,也可接收空格,遇回车结束输入。

测试:

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int main()
{
	char str[100];
	string str1;
	//cin>>str;
	//scanf("%s", &str);
	//printf("%s", str);
	//scanf("%[a-zA-Z0-9]",str);
	//scanf("%[^\n]",str);
	//getline(cin,str1);
	//gets(str);
	//cin.getline(str,10);
	//cin.get(str,11);
	cout<<str<<endl;
	system("pause");
	return 0;	
}

 

 

 

 

 

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

c/c++中读入字符串(包含空格) 的相关文章

  • 缓存与数据库的双写一致性

    背景 在高并发的业务场景下 系统的性能瓶颈往往是出现在数据库上 用户并发访问过大 压力都打到数据库上 所以一般都会用redis做缓存层 起到一个缓冲作用 让请求先访问到缓存层 而不是直接去访问数据库 减轻数据库压力 从而减少网络请求的延迟响
  • 你不知道的正则表达式理解

    正则表达式 Regular Expression 简称正则 一 什么是正则 在我们实际开发过程中经常会遇到 有查找符合某些复杂规则的字符串的需要 比如 我们要查找用户名 邮箱 手机号码等 这时候想匹配或者查找符合某些规则的字符串 就可以使用
  • ODS 、DW、 DM、CDC等名词解释

    Q ODS层 DW层 DM层是什么意思 A ODS层 DW层和DM层是数据仓库中的三个重要组成部分 它们分别代表了操作数据存储层 数据仓库层和数据集市层 ODS层 Operational Data Store 操作数据存储层 ODS层是数据
  • 金融ARQC、ARPC验证生成规则

    从2012年从事金融行业的IT开发和实施工作以来 接触最多的就是IC卡片的ARQC等安全验证 只从发行IC卡以来 行业里面安全验证就是使用ARQC来验证交易的安全性 最近在项目中实施改造的时候因为前段读卡上送过来的ARQC到我系统 我系统去
  • kafka对单分区重设偏移量

    一 整个kafka设置偏移量 对kafka整个集群设置偏移量大家使用较多 适合测试环境 丢弃整个消息队列中的数据 kafka consumer groups sh bootstrap server localhost 9092 group
  • arduino笔记28:使用TM1637四位数码管显示模块

    TM1637模块有四个引脚 相比于使用四位数码管的10个引脚 使用TM1637模块可以大大节省引脚数量 四个引脚的意义如下 GND 电源负级 VCC 电源正极 5V DIO 数据IO模块 可以接任意的数字引脚 CLK 时钟引脚 可以接任意的
  • yolo deepsort_基于YOLOv5和DeepSort的目标跟踪

    软硬件环境 windows 10 64bit pytorch yolov5 deepsort YOLOv5 前文 YOLOv5目标检测 和 YOLOv5模型训练 已经介绍过了YOLOv5相关的内容 在目标检测中效果不错 DeepSort S
  • 这可能是介绍Android UvcCamera最详细的文章了

    设备外接usb摄像头 进行基本的预览 拍照 录像 相信有些同学在工作中有遇到类似的需求 uvc camera 不管你之前有没用过 有没遇到过 相信看完这篇文章 一定会带给你一些收获 这篇文章将从下面几点展开讲解 一 什么是UVC 二 UVC
  • MySQL:MySQL8用户与角色管理

    文章目录 MySQL用户管理 创建用户 查看用户权限 添加 删除权限 查询表权限 使用新创建的用户登陆 修改密码 删除用户 mysql用户管理表 caching sha2 password插件 validate password组件的安装和
  • CSS3 连续向下循环播放动画

    向下动画是在 animate css 的基础上进行修改的 效果展示
  • Java加密工具类EncryptUtils

    Java 提供了一些常见的加密算法 如 MD5 SHA AES DES 现将这些实现方法放进加密工具类 EncryptionUtils 使用了 String format 来确保每个字节都能够正确的被转化为成十六进制字符串 而且不会因为缺少
  • 浏览器背后的运行机制

    浏览器背后的运行机制 从本章开始 我们的性能优化探险也正式进入到了 深水区 浏览器端的性能优化 平时我们几乎每天都在和浏览器打交道 在一些兼容任务比较繁重的团队里 苦逼的前端攻城师们甚至为了兼容各个浏览器而不断地去测试和调试 还要在脑子中记
  • vant-ui 按需引入

    我们在开发移动端的时候 在布局的过程中大部分会用到vant ui 方便快捷 也能更好的帮助我们快速的完成项目布局 首先 第一步 安装vant 在现有项目中使用 Vant 时 可以通过 npm 或 yarn 进行安装 Vue 2 项目 安装
  • 【华为OD机试】跳房子1【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 跳房子 也叫跳飞机 是一种世界性的儿童游戏 游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格 跳房子的过程中 可以向前跳 也可以向后跳 假设房子的总格数是c
  • 无线地磁传感器更适合路边停车系统

    随着停车难问题日益严重 在有限的固定停车场外 路边停车就成为当下很常见的一种停车方式 早起国外采用电感线圈来作为车位的传感器 国内比较少见 而我国直接跨过了电感线圈 直接采用了无线地磁传感器作为车位的传感器 那么无线地磁传感器优势在哪 地磁
  • 程序员经常聚集的国内开发者社区总览表

    转载 http www iteye com topic 1135562 云盘 http yunpan 360 cn 不管是编程菜鸟还是程序员大牛 都需要有自己的交流圈和学习平台 根据我自己的经验总结分享一些开发者论坛 社区啊 有大牛聚集的地
  • Nginx完美解决前后端分离端口号不同导致的跨域问题

    笔者在做前后端分离系统时 出现了很多坑 比如前后端的url域名相同 但是端口号不同 例如前端页面为 http 127 0 0 1 后端api根路径为 http 127 0 0 1 8888 这样就导致跨域问题 前端设置的request he
  • 雷达辐射源调制信号仿真(代码)

    雷达辐射源调制信号仿真 说明 通过Matlab进行单载频 CW 线性调频 LFM 非线性调频 NLFM 二相编码 BPSK 四相编码 QPSK 二频编码 BFSK 四频编码 QFSK 七种雷达脉内调制信号的方仿真 环境 Matlab 直通
  • 【Web前端学习笔记】第一章 HTML常用标签

    Web前端学习笔记 第一章 HTML常用标签 文章目录 Web前端学习笔记 前言 一 HTML是什么 二 常见标签 1 文本标签 2 列表标签 3 图片标签img 4 超链接a 5 表格标签table 6 表单form 7 分区标签 总结

随机推荐

  • 开源软件收集

    http www 7 zip org 7 Zip 4 16 Beta 文件压缩工具 可与Windows资源管理器集成http a note sourceforge net A Note 4 2 1 可在Windows桌面放置便笺 并可提供闹
  • 大模型训练时,使用bitsandbytes报错的解决方法

    前言 在对大语言模型 LLaMa Chat GLM等 进行微调时 考虑到减少显存占用 会使用如下方式加载模型 from transformers import AutoModel model AutoModel from pretraine
  • 2021-07-31

    2周目总结 7 19 7 25 无事 打牌 7 26 8 1 河南加油 无事打牌 我似乎忘了什么 哦 还有作业没弄 作业qaq 正在补习ing
  • T027基于51单片机的智能窗帘窗户控制系统proteus仿真原理图PCB

    功能 0 本系统采用单片机STC89C52作为系统的主控芯片 1 系统采用LCD1602液晶实时显示当前时间 窗帘状态 光照强度 2 系统具有四个功能按键 支持手动按键 定时 遥控三种模式控制窗帘 3 系统采用一个轻触按键模拟限位开关 步进
  • 树的基本概念

    什么是树 一棵树是一些节点的集合 这个集合可以是空集 若非空 则一棵树由一个称作根 root 的节点r以及0个或n个非空的树T1 T2 Tn组成 我们把T1 T2 Tn称为根 root 的子树 这些子树中每一棵的根都被来自根r的一条边 ed
  • 基于sonar 的C#静态代码扫描使用总结

    1 原理简介 C 语言接入Sonar代码静态扫描相较于Java Python来说 相对麻烦一些 Sonar检测C 代码时需要预先编译 而且C 代码必须用MSbuid进行编译 如果需要使用SonarQube对C 进行代码质量分析 则需要Son
  • [Git & Jetbrains] - Jetbrains系列软件Git使用知识点(一)

    前言 基础使用技巧 正文 右下角白框处可查看项目所有分支 在分支前的星 代表提交将哪些分支更新 若要将远程分支下载到本地 选择远程分支 再点击Checkout 此处还有merge等操作选项 左下角的Git选项的第一个功能是查看当前项目改动
  • Kubectl logs 命令

    1 查看创建的状态 状态为Pending 准备中 Running状态 已经创建成功 kubectl get pods n test gt 2 查看POD详细信息 kubectl get pods o wide n test gt 3 创建p
  • angular 学习之组件component

    组件新建 ng g c name 如是想在哪个目录里建 就直接CD进入那目录里执行就可以了 系统自动生成文件 name componet less name compoent html name component spec ts name
  • 关于EXCLE 下拉框多选的设置

    关于EXCLE 下拉框多选的设置 本文转载于 https www cnblogs com boosasliulin p 5970120 html 本文转载于 https blog csdn net qq 33269520 article d
  • linux wayland体验速度,Wayland安装(转)

    Wayland 是一個極精簡的 display server 它是由 Kristian H gsberg 在工作之餘所進行的實驗性計畫 與 X server 不同 Wayland client 要負責所有的繪圖動作 server 只處理最後
  • 用openlayers在加载离线瓦片(里面附带下载瓦片的软件,请往下看)

    首先先来看看效果 这个是谷歌卫星图 然后我们说说怎么实现的吧 div style width 100 height 800px div
  • Vue + Spring Boot 项目实战项目简介

    参考https learner blog csdn net article details 88925013 githubhttps github com Antabot White Jotter
  • Java使用Spire.Pdf实现PDF添加图片水印

    通过本文你将学到 Spire Pdf是什么 如何在项目中引入Spire Pdf依赖 项目中基于Spire Pdf实现PDF添加图片水印 一 Spire Pdf是什么 1 Spire Pdf是成都冰蓝科技有限公司开发的一款简单易用 功能强大的
  • 雨课堂 文件和磁盘练习(1)

    若某文件系统索引结点 inode 中有直接地址项和间接地址项 与单个文件长度有关的因素是 间接地址索引的级数 地址项的个数 文件块大 与单个文件长度无关的因素是 索引结点的总数 相关解释 如果系统中有1000个 索引结点 说明有1000个物
  • 面试官:为什么Vue中的v-if和v-for不建议一起用?

    一 作用 v if 指令用于条件性地渲染一块内容 这块内容只会在指令的表达式返回 true值的时候被渲染 v for 指令基于一个数组来渲染一个列表 v for 指令需要使用 item in items 形式的特殊语法 其中 items 是
  • PID温控实验平台搭建(四)——PID温控系统实验代码讲解

    PID温控实验平台搭建 一 PID基础知识介绍 二 PID进阶知识介绍及源码分享 三 从零开始搭建STM32温控实验平台 四 PID温控系统代码讲解 五 最终实验现象与总结 文章目录 前言 一 主程序功能描述 二 部分代码讲解 1 PID程
  • 一种基于 TrustZone 的内生可信执行环境构建方法

    摘要 针对安全模块扩展技术面临的安全风险以及性能较低的问题 提出了一种基于TrustZone技术构建内生可信执行环境的方法 重点研究了计算资源隔离分配 固件可信度量 安全存储 全信任链构建等关键技术 设计了内生可信执行环境系统结构与可信计算
  • Laplace近似积分

    拉普拉斯方法又称为拉普拉斯近似 Laplace Approximation 它可以用来计算一元或多元积分 这里的思想类似于上篇博客中所讲的使用Laplace近似分布一样 这里把
  • c/c++中读入字符串(包含空格)

    1 scanf函数 scanf函数一般格式为scanf s st 但scanf默认回车和空格是输入不同组之间的间隔和结束符号 所以输入带空格 tab或者回车的字符串是不可以的 解决方法如下 利用格式符 它的作用为扫描字符集合 Scanf c