0%

C++PrimerPlus_4.3String类简介

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. 赋值,拼接和附加

  • string 可以赋值(数值不可)

    1
    2
    3
    string str1;
    string str2 = "jaguar";
    str1 = str2; // valid
  • string类简化了字符串的合并操作(用+或者+=号)

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的长度

-------------本文结束感谢您的阅读-------------