javascript magazine

主にjavascriptについて書こうと思っています。

c++で始点と終点を指定して文字列を切り取る

c++で始点と終点を指定して文字列を切り取る方法です。

stringのメンバ関数substrを使います。

substrの定義

basic_string substr(size_type pos = 0, size_type n = npos) const;

第1引数に始点を第2引数に終点を入れます。 終点が文字列の長さをオーバーしても最大サイズが返却されます。

// 始点からある位置までを切るとる例
string str = "aaaaaaaaaab";
printf("%s",str.substr(0,10).c_str());
// aaaaaaaaaa
// 終点がオーバーしていても例外は吐かれない
printf("%s",str.substr(0,100).c_str());
// aaaaaaaaaab

引数を1つにした場合は、それ以降の文字列が返されます。

string str = "aaaaaaaaaab";
printf("%s",str.substr(0,1).c_str());
// aaaaaaaaab