1. 4.3 string 类简介
由文章开头的#include <string>
使用string类
下面的例子比较了string和字符数组的一些相同点:
🌰 例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| // // main.cpp // strtype1 // // Created by YujiaYANG on 2021/8/11. //
#include <iostream> #include <string>
// 旨在说明string对象与字符数组之间的一些相同点和不同点 int main() { using namespace std; char charr1[20]; // create an empty array char charr2[20] = "jaguar"; // create an initialized array string str1; // create an empty string object string str2 = "panther"; // create an initialized string object cout << "Enter a kind of feline: "; cin >> charr1; // ocelot cout << "Enter another kind of feline: "; cin >> str1; //tiger cout << "Here are some felines:\n"; cout << charr1 << " " << charr2 << " " << str1 << " " << str2 << endl; cout << "The third letter in " << charr2 << " is " << charr2[2] << endl; cout << "The third letter in " << str2 << " is " << str2[2] << endl; return 0; }
|
在很多方面,使用string对象方式与使用字符数组相同:
- 可以使用C-风格字符串来初始化string对象
- 可以使用cin输入string
- 可以使用cout显示string
- 可以使用数组表示法访问存储在string对象中的字符
类的设计可以让程序自动处理string的大小
可以说char数组视为一组用于存储一个字符串中的char存储单元,而string类变量是一个表示字符串的实体。
1.1. C++字符串初始化
string str1;
创建一个长度为0的string对象,读取过程中可以自动调整
string str2 = "panther";
创建一个初始化了的string类对象
string str3 {"Hank's Fine Eats"};
C-风格字符串string对象
1.2. 赋值,拼接和附加
1 2 3
| string str3; str3 = str1 + str2; // assign str3 the joined strings str1 += str2; // add str2 to the end of str1
|
1.3. string类I/O
针对char数组时:
cin.getline(char,20);
需要标明数组的长度
针对string对象时:
getline(cin,str1);
不需要标注string的长度