substr()函數定義於頭文件 <string>
一、參數:(pos, n)
pos - 從此位置開始拷貝
n - 拷貝 n 長度的字符串
二、形式:
s.substr(pos, n)
三、解釋:
返回一個string,包含s中從pos開始的n個字符的拷貝。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s="123abc";
string a=s.substr(2,2);//從下標爲2的位置開始,拷貝兩個字符返回。
cout<<a;
return 0;
}
程序運行結果: 3a
四、說明:
1.參數pos的默認值是0,n的默認值是s.size() - pos。
①不加參數會拷貝整個s。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s="123abc";
string a=s.substr();//不加參數會拷貝整個s
cout<<a;
return 0;
}
程序運行結果: 123abc
②只加參數pos,會從pos位置開始拷貝剩餘全部字符。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s="123abc";
string a=s.substr(3);//從下標爲3的位置開始,拷貝剩餘全部字符返回。
cout<<a;
return 0;
}
程序運行結果: abc
2.若pos的值超過了string的大小,則substr函數會拋出一個out_of_range異常;若pos+n的值超過了string的大小,則substr會調整n的值,只拷貝到string的末尾。