1. ホーム
  2. c++

[解決済み] std::stringの最後の要素を取得する

2023-05-04 16:55:39

質問

のように、文字列の最後の文字を取得する省略形やよりエレガントな方法はないものでしょうか?

char lastChar = myString.at( myString.length() - 1 );

のようなものです。 myString.back() は存在しないようです。同等のものがあるのでしょうか?

どのように解決するのですか?

C++11 以降では、C++11 で使用されていた back メンバー関数を使用します。

char ch = myStr.back();

C++03では std::string::back は見落としにより利用できませんが、これを回避するために reverse_iterator から戻ってきた rbegin :

char ch = *myStr.rbegin();

どちらの場合も、文字列が実際に少なくとも1文字あることを確認するよう注意してください! そうでない場合は 未定義の動作 になってしまいます。

これが役に立つといいのですが!