您的位置:

C++中string的赋值方法总结及使用技巧

一、字符串初始化和赋值方法

在使用C++的string类时,我们需要初始化或赋值给string对象某个字符串。下面总结了几种方法:

1、使用双引号创建,如:string str("Hello World!")

2、使用等号赋值,如:string str = "Hello World!"

3、使用成员函数assign(),如:str.assign("Hello World!")

4、使用拷贝构造函数,如:string str_another(str)

除了以上四种方式外,还可以使用将其他数据类型转换为string对象的to_string()函数。

string str_num = to_string(1234); //将整型1234转换为字符串"1234"

二、字符串截取方法

在处理字符串时,常常需要截取其中一部分进行操作或者显示。下面介绍几个常用的方法:

1、下标运算符([])

我们可以像数组一样,使用下标运算符来访问字符串中的某个字符。

string str = "Hello World!";
char c = str[1]; //将字符'e'赋值给c

2、函数substr()

函数substr()可以截取字符串的一部分,具体使用方法如下:

string str = "Hello World!";
string sub_str = str.substr(6, 5); //从下标为6的字符开始,截取5个字符

substr()函数的第一个参数指定了开始截取的下标,第二个参数指定了要截取的字符数。如果只指定一个参数,则从指定下标开始截取到字符串末尾。

三、字符串连接方法

在C++中,可以使用加号运算符(+)进行两个字符串的连接,如:

string str1 = "Hello";
string str2 = "World!";
string str = str1 + " " + str2; //字符串连接得到"Hello World!"

此外,还可以使用成员函数append()进行字符串的连接,其使用方法如下:

string str1 = "Hello";
string str2 = "World!";
str1.append(str2); //将"World!"连接到"Hello"之后,str1变为"HelloWorld!"

四、其他常用函数

除了上述的初始化、截取和连接方法外,C++中还提供了一些常用的函数,如下所示:

1、函数length()和size()

这两个函数都可以返回字符串的长度,用法相同:

string str = "Hello World!";
int len = str.length(); //len的值为12
int size = str.size(); //size的值为12

2、函数empty()

函数empty()可以判断字符串是否为空,返回值为bool类型。

string str1 = "Hello World!";
string str2;
if(str1.empty()) {
    //字符串为空,不执行操作
}
if(str2.empty()) {
    //字符串为空,执行操作
}

3、函数find()

函数find()可以在字符串中查找指定的子字符串,并返回其第一次出现的位置。具体使用方法如下:

string str = "Hello World!";
int pos = str.find("World"); //pos的值为6

4、函数replace()

函数replace()可以替换字符串中指定位置的字符或子字符串,具体使用方法如下:

string str = "Hello World!";
str.replace(6, 5, "China"); //将字符串"World"替换为"China",str的值变为"Hello China!"

五、代码示例

#include <iostream>
#include <string>
using namespace std;

int main() {
    //字符串初始化和赋值方法
    string str1("Hello World!");
    string str2 = "Hello China!";
    string str3;
    str3.assign("Hello Japan!");
    string str4(str1);

    //字符串截取方法
    char c = str1[1]; //将字符'e'赋值给c
    string sub_str = str2.substr(6, 5); //从下标为6的字符开始,截取5个字符

    //字符串连接方法
    string str5 = str1 + " " + str2;
    str4.append("-").append("2020");

    //其他常用函数
    int len = str1.length(); //len的值为12
    bool is_empty = str3.empty(); //is_empty的值为false
    int pos = str1.find("World"); //pos的值为6
    str1.replace(6, 5, "China"); //将字符串"World"替换为"China",str的值变为"Hello China!"

    cout << str1 << endl;
    cout << str2 << endl;
    cout << str3 << endl;
    cout << str4 << endl;
    cout << str5 << endl;
    cout << sub_str << endl;
    return 0;
}