C++の文字列の一部を取得するサンプルです。
目次
substr+引数2つ | 文字列の一部を取得する |
substr+引数1つ | 文字列の途中から最後までを取得する |
substr+length | 文字列の後ろから取得する |
文字列の一部を取得する
文字列.substr(開始位置,長さ) |
- 1つめの引数の「開始位置」から2つめの引数の「長さ」で文字を返します。
- 最初の1文字目の位置は0です。
文字列の一部を取得するサンプルです。
#include <iostream>
using namespace std;
int main() {
string str1 = "abcde";
cout << str1.substr(0, 1) << endl; //a
cout << str1.substr(1, 1) << endl; //b
cout << str1.substr(2, 1) << endl; //c
cout << str1.substr(0, 2) << endl; //ab
cout << str1.substr(1, 2) << endl; //bc
string str2 = "あいうえお";
cout << str2.substr(0, 2) << endl; //あ
cout << str2.substr(2, 2) << endl; //い
return 0;
}
8~10行目は、指定の位置から1文字取得しています。
12,13行目は、2文字取得しています。
17,18行目は、日本語の文字です。1文字を長さ2で取得しています。
文字列の途中から最後までを取得する
文字列.substr(開始位置) |
- 1つめの引数の開始位置から最後までの文字を返します。
文字列の途中から最後までを取得するサンプルです。
#include <iostream>
using namespace std;
int main() {
string str1 = "abcde";
cout << str1.substr(1) << endl; //bcde
cout << str1.substr(2) << endl; //cde
cout << str1.substr(3) << endl; //de
string str2 = "あいうえお";
cout << str2.substr(2) << endl; //いうえお
cout << str2.substr(4) << endl; //うえお
return 0;
}
指定した位置の文字から最後の文字まで取得しています。
文字列の後ろから取得する
文字列の後ろから取得するサンプルです。length関数を使用します。
#include <iostream>
using namespace std;
int main() {
string str1 = "abcde";
cout << str1.substr(str1.length() - 1) << endl; //e
cout << str1.substr(str1.length() - 2) << endl; //de
cout << str1.substr(str1.length() - 3) << endl; //cde
string str2 = "あいうえお";
cout << str2.substr(str2.length() - 2) << endl; //お
cout << str2.substr(str2.length() - 4) << endl; //えお
return 0;
}
length関数で文字列の長さを取得し、そこから引くことで後ろから文字列を取得しています。
関連の記事