substr()定义
substr()是C++语言函数,主要功能是复制子字符串,要求从指定位置开始,并具有指定的长度。如果没有指定长度_Count或_Count+_Off超出了源字符串的长度,则子字符串将延续到源字符串的结尾。
语法
substr(size_type _Off = 0,size_type _Count = npos)
参数:
_Off
——所需的子字符串的起始位置。字符串中第一个字符的索引为 0,默认值为0。
_Count
——复制的字符数目
返回值
——一个子字符串,从其指定的位置开始
一种构造string的方法
形式 : s.substr(pos, len)
返回值: string,包含s中从pos开始的len个字符的拷贝。pos的默认值是0,len的默认值是s.size() - pos,即不加参数会默认拷贝整个s。
异常 :若pos的值超过了string的大小,则substr函数会抛出一个out_of_range异常;若pos+n的值超过了string的大小,则substr会调整n的值,只拷贝到string的末尾
C++ 中substr函数有三种用法,如下所示:
假设string s(“student12”);
string x=s.substr() //默认时的长度为从开始位置到尾
string y=s.substr(5) //获得字符串s中 从第5位开始到尾的字符串
string z=s.substr(5,3); //获得字符串s中 从第5位开始的长度为3的字符串
示例:
#include<string>
#include<iostream>
using namespace std;
int main()
{
string s="student12";
string x = s.substr(); //默认时的长度为从开始位置到尾
string y = s.substr(5); //获得字符串s中 从第5位开始到尾的字符串
string z = s.substr(5, 3); //获得字符串s中 从第5位开始的长度为3的字符串
cout << x << endl;
cout << y << endl;
cout << z << endl;
system("pause");
return 0;
}
结果如下所示: