C 风格字符串、string 类要点总结
2024-08-30 13:41:03
1. C风格字符串
1.1 其它
- 头文件
<cstring>
- 特殊性质:C风格字符串以空字符
\0
结尾
1.2 读取一行的区别
1.2.1 cin.getline(array1,n,char)
- 参数1:存入的数组名字;参数2:要读取的字符数;参数3:可选参数,用所输入的char字符替代
\n
作为读取结束标记,并把后续可能遇到的\n
作为常规字符读取。 - 功能:读到换行符后边结束,并把
'\n'
替换为'\0'
,把读取到的字符串储存到name中 - 遇到文件结尾设置
eofbit
,遇到流被破坏(如设备故障)时设置badbit
- 遇到空行,不会设置
failbit
,不会退出while循环。因为getline()
仍然抽取换行符,虽然不会储存它。如果希望getline()
在遇到空行时终止循环,编写如下代码,e.g.char temp[80];while(cin.getline(temp,80) && temp[0]!='\0'); // terminates on empty line
- 没有读取到任何字符,但换行符被视为读取了一个字符,设置
failbit
- 超过函数指定的最大字符,把余下的字符留在输入队列中,使用
setstate()
设置failbit
,关闭后面的输入。
1.2.2 cin.get(array1,n,char)
- 参数1:存入的数组名字;参数2:要读取的字符数;参数3:可选参数,用所输入的char字符替代
'\n'
作为读取结束标记,并把后续可能遇到的'\n'
作为常规字符读取。 - 功能读到换行符之前结束,把换行符留在输入队列中,并在结尾加上
'\0'
,把读取到的字符串储存到array1
中。 - 遇到文件结尾设置
eofbit
,遇到流被破坏(如设备故障)时设置badbit
- 可以用下面的命令来恢复输入:
cin.clear()
。char temp[80];while(cin.get(temp,80)); // terminates on empty line
- 超过函数指定的最大字符,把余下的字符留在输入队列中,不设置
failbit
。可用peek()
查看下一个输入字符,来判断到底是到了文件尾停止,还是输入字符过多引起的。
1.2.3 ch=cin.get()
- 读取下一个字符,即使是空字符或者换行符等;
- 将函数返回值赋给ch;
- 函数的返回值是字符编码(int 值);
- 到达文件结尾的返回值
EOF
(EOF:头文件iostream
提供的一个符号常量); - 到达文件尾不会给ch赋值,因为到了文件尾,就没有值了。(Windows命令提示符模式,按下
Crtl+Z
模拟文件尾)
1.2.4 cin.get(ch)
- 读取下一个字符,即使是空字符或者换行符等
- 赋给参数ch
- 指向istream对象的引用
- 到达文件结尾的返回值转换为
false
- 到达文件尾不会给ch赋值,因为到了文件尾,就没有值了。(Windows命令提示符模式,按下
Crtl+Z
模拟文件尾)
1.2.5 cin.ignore(int,char)
- 第一个参数为数字,指定要读取的最大字符数;第二个参数是字符,用作输入分界符。
- 函数原型为:
istream& ignore(int=1,char=EOF)
,默认参数EOF
导致ignore()
读取指定数目的字符或读到文件尾。 - 功能:读取并丢弃接下来的n个字符或直到到达第一个分解符。
- 函数返回调用对象。
1.2.6 cin.peek()
:返回输入中的下一个字符,但不抽取输入流中的字符。
1.2.7 cin.gcount()
:返回最后一个非格式化抽取方法读取的字符数。
1.2.8 cin.putback()
:将一个字符插入到输入字符串中,被插入的字符将是下一条输入语句读取的第一个字符。返回
1.3 函数
未完 ......
点击访问原文(进入后根据右侧标签,快速定位到本文)
最新文章
- Computer vision labs
- Java与MySQL的连接
- mybatis比较数字或者单字母
- Spoj 10628. Count on a tree 题解
- 浅谈IT
- LFS7.4编译笔记(1)
- UVa 11426 (欧拉函数 GCD之和) GCD - Extreme (II)
- 简单设置android启动画面
- css小随笔
- Ubuntu 安装 Nginx 实现反向代理
- 浅析HTTP代理原理--转
- jquery slideDown 控制div出现的方向
- 【blog】批量删除时,guava Splitter与Java String的split 方法有什么区别
- C++ 是 编程界 的 背锅侠
- 【SpringMVC】关于classpath和contextConfigLocation
- 一个java高级工程师的进阶
- INNODB表快速迁移
- 【MySQL案例】mysql-libs-5.1.73-3.el6_5.x86_64 conflicts with file from package Percona-Server-server
- Delphi高效定制格式的FormatDateTime
- Dijkstra 最短路径算法 秒懂详解
热门文章
- LeetCode 881. Boats to Save People
- 注册服务到etcd中
- [后端]gitlab之gitlab-ci自动部署
- java 值传递、引用传递
- 4-微信小程序开发(小程序默认页面函数说明)
- GoCN每日新闻(2019-10-14)
- [300iq contest1-J]Jealous Split
- Spark2.x(六十):在Structured Streaming流处理中是如何查找kafka的DataSourceProvider?
- svg的viewport和viewbox
- [译]使用BeautifulSoup和Python从网页中提取文本