C++字符串操作
C++字符串操作
去除两端空白符
利用正则表达式匹配替换
string line = " hello, world!\t\t "; |
按指定字符分割字符串
利用std::getline
,其默认以换行符分割
vector<string> getTokens(const string& line, const char delimiter) { |
注:istringstream
以空白符分割字符串来构造流且不可改,可以利用getline
为其多传入一个分隔符参数来从流中按指定分隔符读入字符串,以达到分割字符串的目的;如果就是准备以单个空格分割字符串,也可以直接用iss >> token
代替getline(iss, token, ' ')
,注意getline
的参数' '
不可省,因为其默认以换行符分割。
string的几种构造方式
- 直接声明构造空串
string s; // "" |
- 按字面量初始化
string s1 = "cpp"; |
- 重复用特定字符构造
string s3(5, 'a'); // "aaaaa" |
- 获得子串
string::substr
方法,第一个参数为字串起始位置,第二个参数若缺省则取后面所有,否则代表子串的长度
string s5 = "hello,cpp"; |
拼接字符串
+
不改变原串
append
改变原串
示例:
string s1 = "abc", s2 = "def"; |
查找子串
string::find
可用于字符串中查找子串的位置
std::string str = "Hello, world!"; |
查找字符
仍用string::find
std::string str = "Hello, world!"; |
查找最后一个子串
string::rfind
std::string str = "Hello, world!"; |
字符串替换
string::replace
std::string str = "Hello, world!"; |
正则替换
先用std::regex
正则匹配,再用std::regex_replace
替换
std::string str = "Hello, world!"; |
(•‿•)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 (๑>ᴗ<๑)!
评论