C++のsubstr関数と文字列操作

substr関数の概要

C++のstd::stringクラスには、部分文字列を取得するためのsubstr関数が用意されています。この関数は、文字列から指定した位置から始まる部分文字列を取得することができます。

基本的な形式は以下の通りです:

string substr(size_t pos = 0, size_t len = npos) const;

ここで、posは部分文字列の開始位置(0から始まるインデックス)、lenは取得する長さを指定します。nposstring::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! 🚀

投稿者 dodo

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です