字符串(使用C++实现)
😲示例
在C++中,可以使用标准库中的string类来进行字符串的操作。下面是一些常见的字符串操作:
-
字符串的创建和初始化:
- 使用赋值运算符初始化字符串:
string str = "Hello";
- 使用构造函数初始化字符串:
string str("Hello");
- 使用赋值运算符初始化字符串:
-
字符串的拼接:
- 使用加号运算符:
string str1 = "Hello"; string str2 = "World"; string result = str1 + str2;
- 使用append()函数:
string str1 = "Hello"; string str2 = "World"; str1.append(str2);
需要注意的是,
append()
函数会修改调用它的字符串对象,而不会创建一个新的字符串对象。 - 使用加号运算符:
-
字符串的比较:
- 使用比较运算符:
string str1 = "Hello"; string str2 = "World"; if (str1 == str2) { /* 字符串相等 */ }
- 使用compare()函数:
string str1 = "Hello"; string str2 = "World"; if (str1.compare(str2) == 0) { /* 字符串相等 */ }
- 使用比较运算符:
-
字符串的长度:
- 使用size()函数:
string str = "Hello"; int length = str.size();
- 使用size()函数:
-
字符串的查找和替换:
- 查找单个字符:
string str = "hello"; char a = str[0];
- 使用find()函数查找子串:
string str = "Hello World"; int pos = str.find("World");
- 使用replace()函数替换子串:
string str = "Hello World"; str.replace(6, 5, "C++");
- 查找单个字符:
-
字符串的截取和分割:
- 使用substr()函数截取子串:
string str = "Hello World"; string sub = str.substr(6, 5);
- 使用stringstream类分割字符串:
string str = "Hello,World,C++"; stringstream ss(str); string token; while (getline(ss, token, ',')) { /* 分割字符串 */ }
- 使用substr()函数截取子串:
🤔一些疑问解答
字符串不算是基本数据类型, 那么能不能想vector那样改变大小呢?
可以, 使用
resize()
函数可以改变大小, 将会再数组后面扩充空白空间
resize()
函数改变大小的一些细节, 比如增加长度的字符串是从前面增加还是后面, 增加的内容是随机的还是有默认值
在C++中,
std::string
是一个用于处理字符串的标准库类。std::string
类提供了许多有用的成员函数,其中之一是resize()
函数。
resize()
函数用于改变std::string
对象的大小,即修改字符串的长度。它接受一个参数,该参数指定了调整后的字符串长度。
resize()
函数有两种用法:
-
如果指定的长度大于当前字符串的长度,
resize()
函数将在末尾添加足够数量的字符来达到指定的长度。新添加的字符将被初始化为默认值,即空字符('\0'
)。
例如:1
2
3std::string str = "Hello";
str.resize(8); // 将字符串长度调整为8
std::cout << str; // 输出:Hello\0\0\0 -
如果指定的长度小于当前字符串的长度,
resize()
函数将截断字符串,使其长度符合指定的长度。例如:
1
2
3std::string str = "Hello, World!";
str.resize(5); // 将字符串长度调整为5
std::cout << str; // 输出:Hello
此外,还可以使用
resize()
函数的第二个可选参数来指定新添加字符的值
例如:
1 |
|
💪力扣刷题
344. 反转字符串
1 |
|
541. 反转字符串 II
1 |
|
剑指 Offer 05. 替换空格
先数出有多少个空格, 再增加字符串的大小
新的字符串使用两个指针从后往前改造, 前面的给后面提供值
1 |
|
151. 反转字符串中的单词
- 去掉头尾和中间的多余空格
- 把整个字符串反转
- 把每个单词依次反转
1 |
|
剑指 Offer 58 - II. 左旋转字符串
1 |
|
字符串(使用C++实现)
http://example.com/字符串/