C/C++ 中关于字符串处理相关的总结
输入
一.读取一整行输入
getline()
函数
getline(cin, s);
类型转换(字符与数字)
一.整数转换成字符串
- 使用
std :: to_string
(C++ 11)
char str = to_string(number);
二.字符串转换成整数
- 使用
std :: stoi
(C++ 11)
int number = stoi(str);
- 使用
atoi
(C 风格)
const char* str = "123";
int number = atoi(str);
三.判断字符是数字还是字母
- std :: isdigit(char):检查字符是否为数字(0-9)。如果是数字,则返回
true
;否则返回false
。 - std :: isalpha(char):检查字符是否为字母(a-z 或 A-Z)。如果是字母,则返回
true
;否则返回false
。
字符串操作
一.插入操作
- 使用
std::string::insert
方法
string str = "Hello World";
string toInsert = " C++";
// 在位置5插入子字符串
str.insert(5, toInsert);
cout << str << endl; // 输出: Hello C++ World
string str = "HelloWorld";
// 在位置5插入一个空格字符
str.insert(5, 1, ' ');
cout << str << endl; // 输出: Hello World
- 使用拼接运算符(
+
)
string str1 = "Hello";
string str2 = "World";
// 在中间插入一个空格
string result = str1 + " " + str2;
cout << result << endl; // 输出: Hello World
二.截取操作
- 使用
std::string::substr
方法
string str = "Hello World";
// 从位置6开始截取,长度为5
string sub = str.substr(6, 5);
cout << sub << endl; // 输出: World
-
substr(pos, len)
:pos
是起始位置,len
是要截取的长度。如果len
超过字符串的长度,则截取到字符串末尾。 -
使用字符串迭代器
string str = "Hello World";
// 从位置6开始,到结尾
string sub(str.begin() + 6, str.end());
cout << sub << endl; // 输出: World
三.查找子串
- 使用
std::string::find
方法
string str = "Hello World";
string toFind = "World";
// 查找子字符串的位置
size_t pos = str.find(toFind);
if(pos != string::npos) {
cout << "Found at position: " << pos << endl; // 输出: Found at position: 6
}
else{
cout << "Not found" << endl;
}
find
返回子字符串的起始位置,如果未找到则返回std::string::npos
。
👏👏👏