本篇文章摘抄自《C++ Primer Plus》,只是读书笔记,并不具有什么创新性的个人见解(以后有了可能回来重写博客)
![](https://i-blog.csdnimg.cn/blog_migrate/ce349f275d21d57297edcdbf26d9f43d.jpeg)
序言
C++是一种面向对象的编程语言,是一种具有很好的封装性的语言。我们在C语言中使用字符串的时候,一般是采用数组字符串,对数组字符串的操作可以说是十分繁琐。在C++中,有一个string类将这种繁琐封装起来了,让我们可以很方便地操作字符串。下面我将会重点介绍string类的用法
。
使用条件
要使用string类,我们需要包含头文件string,需要使用名字空间std。
基本用法
主要体现在下面四个方面
- 使用C-style字符串来初始化string对象
- 使用cin来将键盘输入存储到string对象中
- 使用cout来显示string对象
- 可以使用数组表示法来访问存储在string对象中的字符、
下面是具体的代码演示
#include <iostream>
#include <climits>
#include <string>
using namespace std;
int main()
{
string str1 = "apple";
string str2;
cout << "please input str2: ";
cin >> str2;
cout << str1 << " " << str2 << endl;
cout << str1[2] << endl;
}
优点
string类设计让程序能够自动处理string的大小。例如,str2的声明创建一个长度为0的string对象,但程序将输入读取到str2中时,将自动调整str2的长度。
相关操作
初始化
C++11也允许将列表初始化用于C-风格字符串和string对象:
char str1[] = {"apple !!"};
char str2[]{"peach !!"};
string str3 = {"dog !!"};
string str4{"cat"};
赋值
不能将一个数组赋值给另一个数组,但可以将一个string对象赋值给另一个string对象:
char str1[10];
char str2[10] = "apple";
string str3;
string str4 = "dog"
str1 = str2; //invalid
str3 = str4; //valid
字符串合并操作
string类简化了字符串合并操作。可以使用运算符+将两个string对象合并起来,还可以使用运算符+=将字符串附加到string对象的末尾。继续前面的代码,您可以这样做:
string str1 = "Apple ";
string str2 = "is bad ";
string str3 = str1 + str2;
str3 += "and i dislike it !!";
总结
一句话:比C语言中的strcpy,strcat,strlen那些东西好用多了。