C++ 字符串
C++ 字符串
C++ 字符串是一种操作字符序列的数据类型,可以表示任何文本数据。在C++中,字符串可以用一组字符数组来表示,也可以使用 string
类型来表示。C++字符串有许多函数和操作,以便于处理和操作。
字符串初始化
字符串的初始化有多种方式:
-
使用字符数组初始化字符串
char arr[] = "hello";
这样就定义了一个字符数组,并初始化为
hello
,可以将其转换为一个字符串对象:string str(arr);
-
使用
string
类型初始化字符串
string str = "hello";
- 使用标准输入初始化字符串
string str;
cin >> str;
如果读入的字符串中含有空格,则只会读取到空格前的部分。
如果需要读入整行字符串,则可以使用 getline
函数:
getline(cin, str);
字符串拼接
C++ 中的字符串拼接有多种方式:
- 使用
+
运算符拼接
string str1 = "hello", str2 = "world";
string str3 = str1 + " " + str2;
- 使用
+=
运算符拼接
string str1 = "hello", str2 = "world";
str1 += " ";
str1 += str2;
- 使用
append
函数拼接
string str1 = "hello", str2 = "world";
str1.append(" ");
str1.append(str2);
字符串查找和替换
C++ 中的字符串查找和替换有多种函数:
find
函数
find
函数用于在字符串中查找子串,返回子串第一次出现的位置。如果没有找到,则返回 string::npos
。
string str1 = "hello world", str2 = "world";
size_t pos = str1.find(str2);
if (pos != string::npos) {
cout << "子串第一次出现的位置为:" << pos << endl;
} else {
cout << "未找到" << endl;
}
rfind
函数
rfind
函数与 find
函数类似,只不过它从字符串末尾开始查找。
replace
函数
replace
函数用于将子串替换为另一个字符串。
string str1 = "hello world", str2 = "world";
str1.replace(str1.find(str2), str2.length(), "C++");
cout << str1 << endl; // "hello C++";
字符串大小写转换
C++ 中的字符串大小写转换有多种函数:
toupper
函数
toupper
函数将字符串中的小写字母转换为大写字母。
string str = "hello world";
for (int i = 0; i < str.length(); i++) {
str[i] = toupper(str[i]);
}
cout << str << endl; // "HELLO WORLD";
tolower
函数
tolower
函数将字符串中的大写字母转换为小写字母。
string str = "HELLO WORLD";
for (int i = 0; i < str.length(); i++) {
str[i] = tolower(str[i]);
}
cout << str << endl; // "hello world";
字符串分割
C++ 中的字符串分割有多种方式:
- 使用
find
和substr
函数实现
string str = "hello,world";
vector<string> strs;
int pos = 0;
string delimiter = ",";
string token;
while ((pos = str.find(delimiter)) != string::npos) {
token = str.substr(0, pos);
strs.push_back(token);
str.erase(0, pos + delimiter.length());
}
strs.push_back(str);
- 使用
stringstream
类实现
string str = "hello,world";
vector<string> strs;
stringstream ss(str);
string token;
while (getline(ss, token, ',')) {
strs.push_back(token);
}
总结
C++ 字符串支持各种字符串操作和处理,如初始化,拼接,查找和替换,大小写转换和分割等。在实际开发中,需要根据需求选择合适的操作函数。