C++ の文字列から最後の文字を取得する

Suraj P 2023年10月12日
  1. std::string::at を使用して、C++ の文字列から最後の文字を取得する
  2. std::string::back() を使用して、C++ の文字列から最後の文字を取得する
  3. std::string::rbegin() を使用して、C++ の文字列から最後の文字を取得する
  4. std::string:begin() および reverse() を使用して、C++ の文字列から最後の文字を取得する
  5. C++ で配列インデックスを使用して文字列の文字にアクセスする
C++ の文字列から最後の文字を取得する

この記事では、C++ で文字列から最後の文字を取得するためのさまざまな方法について説明します。

std::string::at を使用して、C++ の文字列から最後の文字を取得する

std::string::at を使用して、文字列から特定の位置に存在する文字を抽出できます。

構文:

char& string::at(size_type indexNo)

これにより、ユーザーが指定した indexNo の指定された位置にある文字が返されます。ゼロ未満のインデックスや string.size() 以上のインデックスなど、無効なインデックス番号が渡されると、メソッドは out_of_range 例外をスローします。

例:最後の文字と指定された位置の文字を抽出します。

#include <iostream>
using namespace std;

int main() {
  string str("Spider Man");

  cout << "Character at position 3: " << str.at(3) << endl;

  int length = str.size();

  cout << "Character at last position: " << str.at(length - 1) << endl;
}
説明
最後の位置にある文字を取得するには、最初に文字列の長さを見つけ、std::string::at() メソッドで length-1 を渡します。

出力:

Character at position 3: d
Character at last position: n

std::string::back() を使用して、C++ の文字列から最後の文字を取得する

C++ の std::string::back() は、文字列の最後の文字への参照を提供します。これは、空でない文字列でのみ機能します。

この関数は、文字列の最後の文字を置き換えることもできます。

構文:

  1. 最後の文字にアクセスします。

    char ch = string_name.back();
    
  2. 文字列の最後にある文字を置き換える。

    str.back() = 'new_char_we_to_replace_with';
    

この関数はパラメータを受け取らず、文字列の最後の文字への参照を提供します。空の文字列に適用すると、未定義の動作を示します。

コード例:

#include <iostream>
using namespace std;

int main() {
  string str("Spider Man");
  char ch = str.back();

  cout << "Character at the end " << ch << endl;

  str.back() = '@';

  cout << "String after replacing the last character: " << str << endl;
}

出力:

Character at the end n
String after replacing the last character: Spider Ma@

std::string::rbegin() を使用して、C++ の文字列から最後の文字を取得する

C++ の std::string::rbegin() は逆開始を表します。この関数は、文字列の最後の文字を指すために使用されます。

構文:

reverse_iterator it = string_name.rbegin();

この関数にはパラメータが含まれておらず、文字列の最後の文字を指す逆イテレータを返します。

コード例:

#include <iostream>
#include <string>
using namespace std;

int main() {
  string str("Spider Man");

  string::reverse_iterator it = str.rbegin();

  cout << "The last character of the string is: " << *it;
}

出力:

The last character of the string is: n

std::string:begin() および reverse() を使用して、C++ の文字列から最後の文字を取得する

C++ の std::string::begin() は、パラメータを使用せずに、イテレータを文字列の先頭に戻します。

構文:

string::iterator it = string_name.begin();

std::string::reverse() は、文字列を直接反転する C++ の組み込み関数です。引数として beginend イテレータを取ります。

この関数は、アルゴリズムヘッダーファイルで定義されています。

構文:

reverse(string_name.begin(), string_name.end());

文字列から最後の文字を取得するには、最初に reverse メソッドを使用して文字列を反転し、次に begin() メソッドを使用して文字列の最初の文字(反転前の最後の文字)の参照を取得し、出力しますそれ。

コード例:

#include <algorithm>
#include <iostream>
#include <string>
using namespace std;

int main() {
  string str("Spider Man");

  reverse(str.begin(), str.end());

  string::iterator it = str.begin();

  cout << "The last character of the string is: " << *it;
}

出力:

The last character of the string is: n

C++ で配列インデックスを使用して文字列の文字にアクセスする

文字列の文字にアクセスするには、インデックス番号を使用して文字列を参照し、角かっこ [] で囲みます。

コード例:

#include <iostream>

using namespace std;

int main() {
  string str("Bruce banner");

  int length = str.size();

  cout << "The last character of the string is " << str[length - 1];
}

最後の文字を取得するには、最初に文字列の長さを見つけ、角かっこで length-1 を渡します。

出力:

The last character of the string is r
著者: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

関連記事 - C++ String