IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++|C++ primer 第3章 字符串、向量和数组 -> 正文阅读

[C++知识库]C++|C++ primer 第3章 字符串、向量和数组

??????? 本章将介绍最重要的标准库类型:string vector。string 表示可变长的字符序列,vector 存放的是某种给定类型对象的可变长序列。本章还将介绍内置数组类型

3.1 命名空间的 using 声明

??????? 目前为止,我们用到的库函数基本上都属于命名空间 std,本节将学习其中最安全的方法,也就是使用 using声明(using declaration)。???

//using 声明具有如下的形式
using namespace::name

//例如
 using std::cin

每个名字都需要独立的 using 声明

??????? 按照规定,每个 using 声明引入命名空间中的一个成员。

头文件不应包含 using 声明

??????? 位于头文件的代码一般来说不应该使用 using 声明。这是因为头文件的内容会拷贝到所有引用它的文件中去。如果某个头文件里有某个 using 声明,那么每个使用了该头文件的文件就都会有这个声明。可能会产生冲突

3.2 标准库类型 string

??????? 标准库类型 string 表示可变长的字节序列,使用 string 类型必须首先包含 string 头文件。

#include<string>

3.2.1 定义和初始化 string 对象

    //定义和初始化string对象
	string s1;	//默认初始化,s1是一个空字符串
	string s2 = s1;//s2 是 s1 的副本
	string s3 = "hiya";//s3 是该字符串字面值的副本
	string s4(10, 'c');//s4的内容是 cccccccccc

??????? 初始化 string 对象的方式:

	//初始化 string 对象的方式
	string s1;				//默认初始化,s1是一个空串
	string s2(s1);			//s2 是 s1 的副本
	string s2 = s1;			//等价于s2(s1),s2 是 s1 的副本
	string s3("hiya");		//s3 是字面值"hiya"的副本,除了字面值最后的那个空字符外
	string s3 = "hiya";		//等价于 s3("hiya"),s3 是字面值"hiya"的副本
	string s4(n, 'c');		//s4的内容是 cccccccccc,把s4初始化为由连续n个字符c组成的串

直接初始化和拷贝初始化

??????? 如果使用等号(=)初始化一个变量,实际上执行的是拷贝初始化(copy initialization),编译器把等号右侧的初始值拷贝到新创建的对象中去。与之相反,如果不使用等号,则执行的是直接初始化(direct initialization)。

3.2.2 string 对象上的操作 ????

    os << s;			//将s写到输出流 os 当中,返回 os
	is >> s;			//从is中读取字符串赋给s,字符串以空白分隔,返回 is
	getline(is, s);		//从is中读取一行赋给s,返回 is
	s.empty();			//s为空返回 true,否则返回 false
	s.size();			//返回 s 中字符的个数
	s[n];				//返回 s 中第 n 个字符的引用,位置n从0计起
	s1 + s2;			//返回s1和s2连接后的结果
	s1 == s2;			//如果s1和s2中所含的字符完全一样,则它们相等;大小写敏感
	s1 != s2;			//与上一条相反,判断不相等
	<,<=,>,>=			//利用字符再字典中的顺序进行比较,且对字母的大小写敏感

读写 string 对象

??????? 与内置类型的输入输出操作一样。

    string s1,s2;
    cin>>s1>>s2;
    cout<<s1<<s2;

读取未知数量的string 对象?????

    //读取未知数量的 string 对象
	string word;
	while (cin >> word)		//反复读取,直至到达文件末尾
	{
		cout << word << endl;//逐个输出单词,每个单词后面紧跟一个换行
	}

使用 getline() 读取一整行

??????? getline() 函数的参数是一个输入流和一个 string 对象,函数从给定的输入流中读入内容,直到遇到换行符位置(注意换行符也被读进来了),然后把所读的内容存入到 string 对象中去(注意不存换行符)。

	//使用 getline() 读取一整行
	string line;
	//每次读入一整行,直至到达文件末尾
	while (getline(cin, line))
		cout << line << endl;
	return 0;

? string 的 empty 和 size 操作

???????? ???? 使用点操作符(.)调用即可。

string::size_type 类型

??????? size 函数返回的是一个 string::size_type 类型的值。它是一个无符号类型的值而且能足够存放下任何 string 对象的大小。

??????? 由于 size 函数返回的是一个无符号整型数,如果一条表达式中已经有了 size 函数就不要在表达式中再使用 int了,这样可以避免混用 int 和 unsigned 可能带来的问题。

比较 string 对象

??????? string 类定义了几种用于比较字符串的运算符。这些比较运算符逐一比较 string 对象中的字符,并且对大小写敏感。

??????? 这些运算符都依照(大小写敏感的)字典顺序:

  1. 如果两个 string 对象的长度不同,而且较短 string 对象的每个字符都与较长 string 对象对应位置上的字符相同,就说较短 string 对象小于较长 string 对象。
  2. 如果两个 string 对象在某些对应的位置上不一致,则 string 对象比较的结果其实是 string 对象中第一对相异字符相比较的结果。

为 string 对象赋值

??????? 可以用等号进行赋值。

两个 string 对象相加

????????

????????

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 07:46:15  更:2021-11-24 07:46:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:21:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码