s.substr(pos1, pos2 - pos1)
时间: 2024-06-20 09:03:33 浏览: 207
s.substr(pos1, pos2 - pos1)是C++ string类中的一个成员函数,它可以截取一个字符串中从pos1位置开始到pos2位置之前的子串,返回值为一个新的string类型的字符串。其中,pos1和pos2是两个整数类型的参数,pos1表示截取子串的起始位置,pos2表示截取子串的结束位置(不包含pos2所在位置的字符)。
例如,对于字符串s = "Hello, World!",若执行s.substr(2, 5),则返回值为"llo, "。其中,2表示截取子串的起始位置,5表示截取子串的结束位置(不包含5所在位置的字符),因此截取到的子串为"llo, "。
相关问题
s.substr(pos1)
`s.substr(pos1)`是一个string类的成员函数,用于截取字符串s中从pos1位置开始到字符串末尾的子串。pos1是一个整数类型的参数,表示截取子串的起始位置。如果pos1超出了字符串s的长度,则截取的子串为空字符串。该函数返回截取得到的子串。以下是一个使用示例:
```
string s = "hello world";
string sub_s = s.substr(6);
cout << sub_s << endl; // 输出"world"
```
void SplitString(const string& s, vector<string>& v,string c) { string::size_type pos1,pos2; pos2=s.find(c); pos1=0; while(string::npos!=pos2){ v.push_back(s.substr(pos1,pos2-pos1)); pos1=pos2+c.size(); pos2=s.find(c,pos1); } if(pos1!=s.length()) v.push_back(s.substr(pos1)); }
这段代码是一个字符串分割函数。它接受一个字符串和一个分隔符作为参数,并将分隔后的子字符串存储在一个 vector 容器中。
函数中使用了两个变量 `pos1` 和 `pos2` 来记录分隔符在字符串中的位置。初始时,`pos2` 被设置为第一个分隔符的位置,`pos1` 被设置为字符串的起始位置。
然后,在一个循环中,使用 `find` 函数来查找下一个分隔符的位置。如果找到了分隔符,则使用 `substr` 函数截取从 `pos1` 到 `pos2` 之间的子字符串,并将其添加到 vector 容器中。然后,更新 `pos1` 和 `pos2` 的值,继续查找下一个分隔符的位置。
循环结束后,如果 `pos1` 不等于字符串的长度,则说明剩余部分也是一个子字符串,将其添加到 vector 容器中。
总结起来,这个函数的作用是将一个字符串按照指定的分隔符进行切割,然后将切割后的子字符串保存到 vector 容器中。
阅读全文