substr関数の概要
C++のstd::string
クラスには、部分文字列を取得するためのsubstr
関数が用意されています。この関数は、文字列から指定した位置から始まる部分文字列を取得することができます。
基本的な形式は以下の通りです:
string substr(size_t pos = 0, size_t len = npos) const;
ここで、pos
は部分文字列の開始位置(0から始まるインデックス)、len
は取得する長さを指定します。npos
はstring::npos
のことで、これは特殊な値であり、可能な限り多くの文字を取得することを意味します。
この関数は、文字列の操作において非常に便利で、多くの場面で使用されます。次のセクションでは、この関数の具体的な使用方法について詳しく説明します。
substr関数の基本的な使い方
C++のsubstr
関数の基本的な使い方を以下に示します。
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
std::string sub = str.substr(7, 5);
std::cout << sub << std::endl; // 出力:World
return 0;
}
このコードでは、str
という文字列からsubstr
関数を使って部分文字列を取得しています。substr
関数の第一引数には開始位置(この場合は7)、第二引数には取得する長さ(この場合は5)を指定します。この例では、str
の7番目の文字から始まる5文字の部分文字列、つまり”World”を取得しています。
なお、substr
関数の引数は0から始まるインデックスであることに注意してください。また、開始位置が文字列の長さを超える場合、std::out_of_range
例外がスローされます。
次のセクションでは、substr
関数を使って指定した位置から最後までの部分文字列を取得する方法について説明します。
substr関数で指定した位置から最後までの部分文字列を取得する方法
C++のsubstr
関数を使って、指定した位置から最後までの部分文字列を取得する方法を以下に示します。
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
std::string sub = str.substr(7);
std::cout << sub << std::endl; // 出力:World!
return 0;
}
このコードでは、str
という文字列からsubstr
関数を使って部分文字列を取得しています。substr
関数の第一引数には開始位置(この場合は7)を指定します。第二引数を省略すると、開始位置から最後までの部分文字列が取得されます。この例では、str
の7番目の文字から始まる部分文字列、つまり”World!”を取得しています。
このように、substr
関数は非常に柔軟で、様々な文字列操作に対応しています。次のセクションでは、substr
関数を使って指定した範囲の部分文字列を取得する方法について説明します。
substr関数で指定した範囲の部分文字列を取得する方法
C++のsubstr
関数を使って、指定した範囲の部分文字列を取得する方法を以下に示します。
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
std::string sub = str.substr(0, 5);
std::cout << sub << std::endl; // 出力:Hello
return 0;
}
このコードでは、str
という文字列からsubstr
関数を使って部分文字列を取得しています。substr
関数の第一引数には開始位置(この場合は0)、第二引数には取得する長さ(この場合は5)を指定します。この例では、str
の0番目の文字から始まる5文字の部分文字列、つまり”Hello”を取得しています。
このように、substr
関数は指定した範囲の部分文字列を簡単に取得することができます。次のセクションでは、substr
関数を使って後ろから取得する方法について説明します。
substr関数を使って後ろから取得する方法
C++のsubstr
関数を使って、後ろから指定した長さの部分文字列を取得する方法を以下に示します。
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
std::string sub = str.substr(str.size() - 5);
std::cout << sub << std::endl; // 出力:World
return 0;
}
このコードでは、str
という文字列からsubstr
関数を使って部分文字列を取得しています。substr
関数の第一引数には開始位置を指定します。この例では、str
の長さから5を引いた位置、つまり後ろから5文字目が開始位置となります。第二引数を省略すると、開始位置から最後までの部分文字列が取得されます。したがって、この例では、str
の後ろから5文字の部分文字列、つまり”World”を取得しています。
このように、substr
関数を使って後ろから部分文字列を取得することも可能です。ただし、開始位置が文字列の長さを超える場合、std::out_of_range
例外がスローされることに注意してください。この例外を避けるためには、開始位置が文字列の長さ以下であることを確認する必要があります。この方法を使えば、文字列の後ろから任意の長さの部分文字列を簡単に取得することができます。これで、C++のsubstr
関数の基本的な使い方と応用例について説明しました。これらの知識を活用して、C++での文字列操作をより効率的に行うことができます。それでは、Happy coding! 🚀