一、string截取指定字符串
string截取功能可以用于字符串的处理,例如从字符串中截取指定字符,指定位置,以及指定长度等等。其中,截取指定字符串可以使用substr函数。
string str = "hello world"; string substr = str.substr(6,5);
上述代码中,substr函数第一个参数是截取的起始位置,第二个参数是截取的长度。上面的代码表示从字符串"hello world"中截取第6个位置开始的长度为5的字符串,即"world"。
二、string截取字符串的右侧数据
借助substr函数,还可以对字符串进行右截取。例如我们想要得到字符串的右边3个字符,可以这样写:
string s = "abcdefg"; string s_right = s.substr(s.length() - 3, 3); // "efg"
其中,s.length()表示字符串s的长度,因此(s.length() - 3)表示字符串右侧第三个字符的位置,而第二个参数3表示要截取的长度。
三、string截取最后两位
和上面类似,想要得到一个字符串的最后两位,只需要调用substr函数,指定起始位置为字符串长度减二即可。
string str = "abcdefgh"; string str_last_two = str.substr(str.length() - 2, 2); // "gh"
四、string截取最后一个逗号
假设我们有一个字符串s,其中包含多个逗号分隔的字符串,我们想要获得这个字符串中最后一个逗号后面的内容。可以先用substr函数得到逗号的位置,然后再进行截取。
string s = "a,b,c,d,e,f"; auto pos = s.rfind(","); string res = pos == string::npos ? s : s.substr(pos + 1); // "f"
在上述代码中,rfind函数是从字符串的右侧开始查找给定字符(逗号)的位置。如果没有查找到,则返回string::npos,表示未找到。如果找到了逗号,就可以用substr函数得到逗号后面的内容。
五、string截取前八位
要截取一个字符串的前八位,可以调用substr函数,指定截取的起始位置为0,长度为8。
string s = "abcdefgh"; string res = s.substr(0, 8); // "abcdefg"
六、string截取前四位
如果想要截取一个字符串的前四位,同样也是使用substr函数,指定截取的长度为4,起始位置为0。
string s = "abcdefgh"; string res = s.substr(0, 4); // "abcd"
七、string截取指定位置
对于一个字符串,需要截取其中的一部分,可以使用substr函数。例如,如果我们想要截取一个字符串的第5个位置之后的子字符串,可以写成:
string s = "abcdefgh"; string res = s.substr(4); // "efgh"
八、string截取以前的内容
如果需要截取一个字符串中某个子串出现之前的内容,可以使用find函数和substr函数。例如,如果s是一个字符串,其中有一个子串"world",我们需要截取其出现之前的内容,可以这样写:
string s = "hello world"; auto pos = s.find("world"); string res = pos == string::npos ? s : s.substr(0, pos); // "hello "
九、string截取后三位
如果需要截取一个字符串的后面几位,同样可以使用substr函数。例如,如果我们需要截取一个字符串的后三位,可以写成:
string s = "abcdefgh"; string res = s.substr(s.length() - 3); // "fgh"
十、string截取分隔符内容
如果需要从一个字符串中截取某几个分隔符之间的内容,可以用find函数和substr函数结合。假设我们有一个字符串,其中包含多个以逗号分隔的字符串。我们需要获取第三个逗号后面的内容,可以这样写:
string s = "a,b,c,d,e,f"; auto pos = s.find(","); for (int i = 0; i < 3; ++i) { pos = s.find(",", pos + 1); if (pos == string::npos) { break; } } string res = pos == string::npos ? s : s.substr(pos + 1); // "d,e,f"
在上述代码中,首先用find函数找到第一个逗号的位置,然后在循环中一直向后找逗号,直到找到第三个为止。最后,用substr函数从第三个逗号的位置开始获取字符串内容。