下面是关于代码分析C++中string
类的完整攻略。
什么是string
类
string
是C++标准库中的一个类,用来存储和操作字符串。它的定义在头文件<string>
中。通过使用string
类,我们可以像操作基本数据类型一样来操作字符串,包括初始化、赋值、比较、查找、替换等等。
string
类的基本用法
初始化
我们可以使用string
类的构造函数来创建一个字符串,它可以接收一个C字符串或另一个string
对象作为参数,也可以不传入任何参数。下面是一些常见的初始化方法。
string s1; // 默认构造函数,s1为空字符串
string s2("hello"); // 用字符串字面量初始化一个字符串
string s3(s2); // 用另一个string对象初始化一个字符串
string s4(10, 'a'); // 创建一个包含10个'a'字符的字符串
string s5 = "world"; // 用字符串字面量初始化一个字符串
string s6 = s2; // 用另一个string对象初始化一个字符串
赋值
string
类重载了=
操作符,我们可以使用它来将一个字符串赋值给另一个字符串。下面是一些常见的赋值方法。
string s1, s2;
s1 = "hello"; // 使用字符串字面量赋值
s2 = s1; // 使用另一个string对象赋值
比较
string
类重载了==
和!=
操作符,我们可以使用它们来比较两个字符串是否相等。下面是一些常见的比较方法。
string s1 = "hello", s2 = "world";
if (s1 == s2) {
cout << "s1 is equal to s2" << endl;
} else {
cout << "s1 is not equal to s2" << endl;
}
查找
string
类提供了一组查找函数,可以用来在字符串中查找子串。下面是一些常见的查找方法。
string s = "hello world";
int pos = s.find("world"); // 查找"world"在s中的起始位置,pos=6
pos = s.find("world", 7); // 从s的第7个位置开始查找"world",pos=-1(没有找到)
pos = s.find_first_of("wr"); // 查找s中第一个出现的'w'或'r'的位置,pos=2
pos = s.find_first_not_of("hello"); // 查找s中第一个不属于"hello"中任何一个字符的位置,pos=5
替换
string
类提供了一组替换函数,可以用来在字符串中替换指定的子串。下面是一些常见的替换方法。
string s = "hello world";
s.replace(6, 5, "wrld"); // 把s中"world"替换为"wrld",s变为"hello wrld"
实际应用示例
下面是两个示例,用来说明string
类的基本用法。
示例一:检查字符串是否为回文
#include <iostream>
#include <string>
using namespace std;
// 判断一个字符串是否为回文
bool is_palindrome(const string& s) {
int i = 0, j = s.size() - 1;
while (i < j) {
if (s[i] != s[j]) {
return false;
}
++i; --j;
}
return true;
}
int main() {
string s;
cout << "Please enter a string: ";
cin >> s;
if (is_palindrome(s)) {
cout << s << " is a palindrome" << endl;
} else {
cout << s << " is not a palindrome" << endl;
}
return 0;
}
示例二:计算单词个数
#include <iostream>
#include <string>
using namespace std;
// 计算一个字符串中单词的个数
int word_count(const string& s) {
int count = 0;
bool in_word = false;
for (char c : s) {
if (in_word) {
if (c == ' ') {
in_word = false;
}
} else {
if (c != ' ') {
in_word = true;
++count;
}
}
}
return count;
}
int main() {
string s;
cout << "Please enter a string: ";
getline(cin, s); // 使用getline读取含有空格的字符串
cout << "There are " << word_count(s) << " words in the string." << endl;
return 0;
}
以上就是关于代码分析C++中string
类的完整攻略了,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:代码分析c++中string类 - Python技术站