C++中的字符串的输入输出函数、空字符与空格的区别、字符变量赋值和字符串初始化
一、字符串输入输出函数
1. cin.get()
逐个字符输入输出
2. cin
可以将整个字符串一次性输入,但是,cin将空格、Tab和回车键,因此不能用于数组的一次性输入。
注意:cin和cout 都可以用于字符串整体输入输出,无须像cin.get()函数那样只能逐个字符输入,但是
cin 不可以输入空格,而cout可以输出空格。
3. cin.getline()
接收一个字符串,可以接收空格并输出,遇到回车键结束。
#include <iostream>
using namespace std;
main ()
{
char m[];
cin.getline(m,);
cout<<m<<endl;
}
输入:jkljkljkl
输出:jklj
注意:接收5个字符到m中,其中最后一个自动添加为'\0',所以只看到4个字符输出;
如果把5改成20:
输入:jkljkljkl
输出:jkljkljkl
输入:jklf fjlsjf fjsdklf
输出:jklf fjlsjf fjsdklf
延伸:
1、cin.getline()实际上有三个参数,cin.getline(接收字符串的变量,接收字符个数,结束字符)。
2、当第三个参数省略时,系统默认为'\0'。
3、如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk。
4. getline()
接收一个字符串,可以接收空格并输出,需包含“#include<string>”,遇到回车键结束。
#include<iostream>
#include<string>
using namespace std;
main ()
{
string str;
getline(cin,str);
cout<<str<<endl;
}
输入:jkljkljkl
输出:jkljkljkl
输入:jkl
jfksldfj jklsjfl
输出:jkl jfksldfj jklsjfl
5.
gets_s和puts函数
在新的C++标准中,原来的gets函数现在已经改成了gets_s。
(1)gets_s函数:输入一个字符串到字符数组中,可以输入空格和Tab,但是不能输入回车键。输入完成后,在结尾自动添加空字符。
char
str[80];
gets_s(str);
(2)puts_s函数输出一个字符串,但是不包含空字符,但在新的C++标准中,也能输出空字符。
char str[80]=”programme”;
puts_s(str);
二、C++字符串中空格,空字符、回车、换行的区别
(1)空格的ASCII码为32,符号表示为 \40, 赋值语句为:
char a=’ ‘; 或者char
a=32;
(2) \0 表示结束符,一般在字符串的最后是结束字符,ASCII码为0。一般字符串输出函数遇到空字符就停止输出。
(3) \r 表示回车符, c++语言编程时(windows系统) 就是return 回到本行行首, 这就会把这一行以前的输出覆盖掉
如:
int main()
{
cout << "hahaha" << "\r" << "xixi" ;
}
最后只显示 xixi 而 hahaha 被覆盖了
(4) \n 是换行符,c++语言编程时(windows系统),是回车+换行, 把光标先移到行首, 然后换到下一行,也就是下一行的行首。
int main() {
cout << "hahaha" << "\n" << "xixi" ;
}
则 显示
hahaha
xixi
三.
字符变量赋值和字符串初始化
(1)字符变量赋值用单引号
‘’或者直接用ASCII码;
(2)字符串赋值用双引号
char a[10]=”abcd”;
或者char
a[4]={‘a’,’b’,’c’,’d’};
理解记忆:字符变量或者字符串中的元素如a[3],里面存储的是ASCII值,而不是字符,因为计算机存储的其实都是数字。单引号‘’表示取引号内的ASCII值。双引号表示文本。
注:本文有部分内容来自于网上网友的博客,在此向他们表示感谢。
C++中的字符串的输入输出函数、空字符与空格的区别、字符变量赋值和字符串初始化的更多相关文章
- C 语言-----字符串和输入输出函数
在C语言中,没有字符串类型,那它是怎么表示字符串呢? 由于字符串是一系列单个字符的组合,所以它用char 类型的数组来表示字符串,在数组中,一个数组元素存放一个char类型字符. ]; name 变量 ...
- C字符串输入输出函数
下面就几个常用的字符串输入输出函数做个小小的总结TAT 使用时添加头文件:#include<stdio.h>. scanf("格式控制字符串",变量地址列表):(pri ...
- C语言中最常用的三种输入输出函数scanf()、printf()、getchar()和putchar()
本文给大家介绍C语言中最常用的三种输入输出函数scanf().printf().getchar()和putchar(). 一.scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该 ...
- C语言中输入输出函数
1.1.1 格式化输入输出函数Turbo C2.0 标准库提供了两个控制台格式化输入. 输出函数printf() 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据.pri ...
- C语言 · 字符串输入输出函数
算法提高 3-2字符串输入输出函数 时间限制:1.0s 内存限制:512.0MB 描述 编写函数GetReal和GetString,在main函数中分别调用这两个函数.在读入一个实数 ...
- Java实现 蓝桥杯VIP 算法提高 3-2字符串输入输出函数
算法提高 3-2字符串输入输出函数 时间限制:1.0s 内存限制:512.0MB 描述 编写函数GetReal和GetString,在main函数中分别调用这两个函数.在读入一个实数和一个字符串后,将 ...
- C语言字符串输入输出函数(gets()函数、puts()函数、fgets()函数、fputs()函数)
scanf("%s", str) 不能读取空白字符,遇到第一个空白字符就停止读取. gets(str) 读取整行输入,直至遇到换行符,丢弃换行符储存其余字符,并在末尾添加 \0.与 ...
- c语言的输入输出函数
参考文章: http://blog.sina.com.cn/s/blog_784f40b80100psg9.html C语言输入输出函数分为两类: 1.格式化输入输出函数 2.非格式化输入输出 --- ...
- C语言格式化输入输出函数
一:格式输出函数printf() 1.调用形式一般为:printf("格式化控制字符串",输出表列): 2.格式化控制字符串用于指定输出格式,它有三种形式: 1.格式说明符:规定了 ...
随机推荐
- 8位、16位、32位单片机中的“XX位”指什么?
32位单片机的32位是指单片机的“字长”,也就是一次运算中参与运算的数据长度,这个位是指二进制位. 如果总线宽度与CPU一次处理的数据宽度相同,则这个宽度就是所说的单片机位数. 如果总线宽度与CPU一 ...
- 牛客OI周赛9-提高组题目记录
牛客OI周赛9-提高组题目记录 昨天晚上做了这一套比赛,觉得题目质量挺高,而且有一些非常有趣而且非常清奇的脑回路在里边,于是记录在此. T1: 扫雷 题目链接 设 \(f_i\) 表示扫到第 \(i\ ...
- ES6解构过程添加一个默认值和赋值一个新的值
const info = { name: 'xiaobe', } const { name: nickName = '未知' } = info; 其中nickName是解构过程中新声明的一个变量,并且 ...
- Jenkins之定时构建
参考文章:https://blog.csdn.net/ZZY1078689276/article/details/77520441 第一个*表示分钟,取值0~59 第二个*表示小时,取值0~23 第三 ...
- Python 开发 项目《外星人入侵》
2019-02-05 本篇心路历程: 本篇是打算记录自己的第一个python项目,也是众人皆知的<外星人入侵项目>,本项目大概500多行.趁着寒假,大概耗时3天吧,把完整代码敲了出来,当然 ...
- 悲观并发 乐观并发 Entity Framework Core中的并发处理
悲观并发策略 A用户发起一个请求 开启了事务 查询到了某一条数据 进行修改 在A提交事务之前 其他人都不能对这条数据进行修改 这种策略最常见的一个问题就是死锁 比如A修改X记录,B修改Y ...
- reactiveCocoa使用注意点
@RACSubject信号 注意点:1如果一个页面需要多次发送这个消息,那么似乎会暴露一个bug,信号不会被销毁,等到发送第二个信号 时,第一个信号仍然会被发送,导致错误,比如一个tableView的 ...
- idea 配置git
1.注册https://github.com 2. 3.填入信息完成
- inconfont的使用
iconfont 进入阿里的矢量图标库,进入到我的项目(图标库)中,可以看到如下页面 根据不同的使用方式(Unicode.Font class.Symbol)可将对应文件下载至本地或直接在项目中引入 ...
- line-height:150%与line-height:1.5的区别
今天看到一篇文章,说的是CSS学习中的瓶颈,我最近也发现自己css很薄弱,写的样式总是有兼容性问题,要写很久,发现了一个问题,我从来没有用过line-height:150和line-height:1. ...