C++字符串分割的常用方法
前言
C++没有python那样的split分割函数,但string.h和string类提供了下列函数方便我们处理字符串
函数与用例
1. strtok_s
应用:将字符串按照给定字符进行分割
参数:
1 | char* strtok_s(char* str, const char* delimiters, char** next_token); |
xxxxxxxxxx24 1string str = “dqywy”;2cout << “转换前:” << str << endl;3transform(str.begin(), str.end(), str.begin(), toupper);4cout << “转换后:” << str << endl;56// 也可以定义一个新的字符串来接收,修改目标容器起始地址即可,但是字符串长度应该一致7string str = “dqywy”;8string temp = “dqywy99”;9cout << “转换前:” << str << endl;10transform(str.begin(), str.end(), temp.begin(), toupper);11cout << “转换后:” << temp << endl;1213// 测试返回值14// 过程分析:15// 1. 目标容器temp中的dqywy被修改为DQYWY,99未被覆盖,保持不变16// 2. transform返回temp存储DQYWY后的下一个位置的迭代器,即字符9的指针17string str = “dqywy”;18string temp = “dqywy99”;19string::iterator p; // 字符串迭代器20cout << “转换前:” << str << endl;21p = transform(str.begin(), str.end(), temp.begin(), toupper);22cout << “转换后:” << temp << endl;23cout << “transform返回值解引用:” << *p << endl;24return 0;c++
注意:第二个参数是const char类型,不要忘记加const;第三个参数是二级指针,不要忘记对一级指针*取地址&
实例:
1 |
|
2. find
应用:查找指定子字符串的是否存在及具体位置
参数:
1 | size_t find(const string& str, size_t pos = 0) const; |
返回值:匹配成功返回子字符串的第一个字符在整个字符串的下标;匹配失败返回string::npos (即-1)
注意:匹配失败返回的string::npos实质上就是-1
实例:
1 |
|
3. substr
应用:获取从指定的起始位置开始,长度为n的子字符串
参数:
1 | string substr(size_t pos = 0, size_t n = npos) const; |
返回值:子字符串
注意:起始位置从0开始计算
实例:
1 |
|