字符串的读入方式

news2025/1/15 6:36:28

文章目录

  • 1、scanf
  • 2、fgets()
  • 3、cin
  • 4、cin.getline()
  • 5、getline()

1、scanf

  • scanf只能读入不带空格的字符串,遇到空格则结束。
  • scanf只能读入字符数组,不能读入string。
  • scanf在读入的时候,会自动在字符串的末尾加上’\0’。
  • 定义字符数组长度时,一定要考虑’\0’,'\0’也需要占位置。
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	char a[100];
	scanf("%s",a);
	printf("%s\n",a);
	return 0;
}
输入:asdf
输出:asdf 

2、fgets()

  • 基本语法:在这里插入图片描述
    在这里插入图片描述
  • fgets能读入带空格的字符数组。
  • fgets在用键盘读入时,会保留换行。
  • 字符数组的大小,一定要为’\n’和’\0’留位置。
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	char a[100];
	fgets(a,4,stdin);
	for(int i=0; a[i]!='\0'; i++)
		cout<<(int)a[i]<<" ";
	return 0;
}
输入:ab
输出:97 98 10
由此可见:
fgets(a,4,stdin),存4个字符,分别为:ab'\n''\0'

3、cin

  • cin既能读入字符数组也能读入string
  • cin在读入的时候,会自动在字符串的末尾加上’\0’
  • cin只能读入不带空格的字符串,遇到空格则结束。
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	string a;
	cin>>a;
	cout<<a; 
	return 0;
}
输入:abc
输出:abc
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	char a[100];
	cin>>a;
	cout<<a; 
	return 0;
}
输入:abc
输出:abc

4、cin.getline()

  • 基本语法
cin.getline(char buf[], int bufSize);
  • 能读入带空格的字符数组
  • 读入的时候,自动添加’\0’ ,数组的大小要为’\0’留位置
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	char a[100];
	cin.getline(a,5);
	cout<<a;
	return 0;
}
输入:a xx
输出:a xx

5、getline()

  • 读入带空格的string
  • 字符串的结束标志为’\0’
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	string s;
	getline(cin,s);
	cout<<s;
}
输入:a bc
输出:a bc 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74567.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚表指针在C++类的继承/多态与重载中的基本逻辑

文章目录前言重载继承虚函数虚函数表动态绑定的实现析构函数构造函数多态子类直接继承父类的方法&#xff0c;不覆盖多重继承纯虚函数前言 C在C语言的基础上增加了类的概念&#xff0c;而类的最关键的特性就是三个&#xff1a; 继承多态重载 这篇文章想接着上两篇C相关的文章…

[附源码]Python计算机毕业设计SSM基于推荐算法的汽车租赁系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java动物爱心救助平台s9dza

首先选择计算机题目的时候先看定什么主题&#xff0c;一般的话都选择当年最热门的话题进行组题&#xff0c;就比如说&#xff0c;今年的热门话题有奥运会&#xff0c;全运会&#xff0c;残运会&#xff0c;或者疫情相关的&#xff0c;这些都是热门话题&#xff0c;所以你就可以…

HTML做一个抗疫逆行者感动人物页面(纯html代码)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

AI公平性研究进展(2022)

最近AI公平性方面出了不少新的研究成果&#xff0c;如有遗漏&#xff0c;欢迎补充↓↓↓↓ 公平性提升 MAAT: A Novel Ensemble Approach to Addressing Fairness and Performance Bugs for Machine Learning Software, FSE, 2022. 利用模型集成的方式获得公平的预测结果&am…

Windows下如何查看某个端口被谁占用

开发时经常遇到端口被占用的情况&#xff0c;这个时候我们就需要找出被占用端口的程序&#xff0c;然后结束它&#xff0c;本文为大家介绍如何查找被占用的端口。 1、打开命令窗口(以管理员身份运行) 开始—->运行—->cmd&#xff0c;或者是 windowR 组合键&#xff0c…

含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

开关电源 - LLC电路的谐振工作模态浅析

LLC电路的谐振工作模态浅析 LLC谐振电路是常用的拓扑&#xff0c;广泛应用在目前的热门应用中&#xff0c;本文主要从典型谐振状态来分析其基本工作过程&#xff0c;后续我们将逐步扩展到其它工作状态。 一、电路工作基本条件及电路组成 图1 电路主要组成部分 如上图1所示&a…

c#入门-运算符

可用运算符 值的运算也是自定义的&#xff0c;但是这个就看不出了。 要么翻源文件&#xff0c;要么翻说明书才知道一个类型能怎么运算。 但是一个默认情况下的类型&#xff0c;是没有定义任何运算符的。 也就是说你适用的运算一定是由人先写出来的&#xff0c;没有系统默认的…

MYSQL的索引事务

文章目录1&#xff1a;索引1.1&#xff1a;概念&#xff1a;1.2 作用&#xff1a;1.3 使用场景&#xff1a;1.4 使用&#xff1a;补充&#xff1a;**2&#xff1a;了解一下B树&#xff1a;****3&#xff1a;了解一下B树**4&#xff1a;为什么使用B树/B树来实现索引2&#xff1a…

通过IP地址如何查到用户真实个人信息

当人们使用服务时&#xff0c;互联网上所有科技巨头公司都会收集大量的数据&#xff0c;他们就是这样发财的。微博知道您的朋友是谁、您 “喜欢” 什么&#xff0c;以及您在新闻源上阅读的内容种类&#xff1b;百度知道您的想法、您想知道什么、以及任何时候的去向&#xff1b;…

[附源码]JAVA毕业设计小区物业管理系统(系统+LW)

[附源码]JAVA毕业设计小区物业管理系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

Spring cloud Eureka服务注册中心实战

Spring cloud Eureka服务注册中心一、注册中心二、存在意义三、角色四、运行流程五、入门案例1、创建Spring Cloud 工程2、创建 Eureka 服务pom.xml3、配置 application.yml4、服务间调用方式一&#xff1a;RestTemplate DiscoveryClient方式二&#xff1a;RestTemplate Load…

【Golang】关于slice调用append函数后分配新数组的问题(slice的底层实现)

问题描述 今天在写代码的时候遇到一个很奇怪的现象&#xff0c;先看下面两段代码 func push(a []int, v int) {a[1] 2a append(a, v) } func main() {a : []int{0, 1, 2}push(a, 3)fmt.Println(a) }结果&#xff1a;[0 2 2] func push(a []int, v int) {a append(a, v)a[…

如何看股票l2接口的最佳买卖价位委托明细?

股票l2接口的买卖价位委托明细即买一卖一位置的挂挡情况&#xff0c;挂单可以让用户及时了解交易队列&#xff0c;从而了解完整的开盘情况。用户可以通过观察挂单来判断档位是否有主力资金介入&#xff0c;从而判断开盘时的主力动态&#xff0c;进而把握投资机会。 1.股票l2接…

数据库之insert的使用讲解

1单独插入一条数据&#xff1a; INSERT INTO t1(col1,col2) VALUE(v01,v02); 2插入多条数据 INSERT INTO t1(col1,col2) VALUE(v01,v02)&#xff0c;(v03,v04)&#xff0c;(v05,v06)...; 3插入查询的数据&#xff08;查询N条数据插入N条数据&#xff0c;广泛应用&#xf…

微信小程序|使用小程序制作一个足球拼图小游戏

世界杯的意义永远不止是冠军&#xff0c;它是每个精彩的瞬间&#xff0c;是呐喊&#xff0c;是青春。此文用小程序制作一个足球的拼图小游戏&#xff0c;一起为世界杯疯狂吧&#xff01; 开发步骤一、工具安装二、功能实现1 . 提示图展示2 . 绘制画布内容3 . 打乱方块顺序4 . 移…

模型和视图框架(概念)

MVC&#xff08;Model-View-Controller&#xff09;是一种设计模式。 Model(模型)是应用对象&#xff0c;用来显示模型View (视图)是用户界面&#xff0c;用来显示数据Controller(控制)定义用户界面对用户输出的反映方式模型/视图类可以分为上述三组&#xff1a;模型、视图和委…

CPU100%,怎么快速定位?

一台机器&#xff0c;CPU100%&#xff0c;如何找到相关服务&#xff0c;如何定位问题代码&#xff0c;今天简单分享下思路。假设&#xff0c;服务器上部署了若干Java站点服务&#xff0c;以及若干Java微服务&#xff0c;突然收到运维的CPU异常告警。如何定位是哪个服务进程导致…

是时候给钉钉和腾讯会议算算账了

杨净 萧箫 发自 凹非寺量子位 | 公众号 QbitAI这几天&#xff0c;工作和上课等事情开始有回归线下的迹象&#xff0c;腾讯会议、钉钉似乎也可以松口气了。毕竟云会议的这两大APP&#xff0c;前段时间一直在被网友找平替。一来&#xff0c;它们要收费了&#xff1b;二来&#xf…