C++ で文字列から最後の文字を削除する

Namita Chaudhary 2023年10月12日
  1. C++ で文字列から最後の文字を削除する
  2. C++ で pop_back() 関数を使用して文字列から最後の文字を削除する
  3. C++ で erase() メソッドを使用して文字列から最後の文字を削除する
  4. C++ で erase(pos,Len) 関数を使用して文字列の最後の文字を削除する
  5. C++ で erase(iterator) 関数を使用して文字列の最後の文字を削除する
  6. C++ で substr() メソッドを使用して文字列から最後の文字を削除する
  7. C++ で resize() メソッドを使用して文字列から最後の文字を削除する
  8. まとめ
C++ で文字列から最後の文字を削除する

C++ の文字列は、文字列を格納してさまざまな操作を実行するために使用されます。この記事では、文字列を使用して最後の文字を削除します。

C++ で文字列から最後の文字を削除する

C++ では、文字列は 2つの方法で宣言できます。文字の配列または標準の文字列クラスです。ただし、配列のサイズは固定されており、インスタンス化されたオブジェクトではないため、文字の配列から最後の要素を削除することはできません。

C++ の文字列クラスには、最後の文字を削除した後に文字列を提供するいくつかの組み込み関数が含まれています。pop_back() 関数と erase() 関数はその 2つです。

C++ で pop_back() 関数を使用して文字列から最後の文字を削除する

pop_back() は、文字列から最後の要素を削除する C++STL の組み込み関数です。最後の要素を削除し、それに応じて文字列の長さを調整するだけです。

コードスニペット:

#include <iostream>
using namespace std;

int main() {
  string str;
  cin >> str;
  cout << "Original String: " << str << endl;
  str.pop_back();
  cout << "Required String: " << str << endl;
  return 0;
}

出力:

Original String: Welcome
Required String: Welcom

C++ で erase() メソッドを使用して文字列から最後の文字を削除する

erase() メソッドは、文字列クラスの組み込みメソッドです。このメソッドは、インデックスを指定することにより、単一の文字または文字の範囲を削除できます。

erase() メソッドを使用できるバリエーションは 3つありますが、最後の文字を削除するだけでよいので、そのうちの 2つについて説明します。

C++ で erase(pos,Len) 関数を使用して文字列の最後の文字を削除する

この関数では、2つのパラメーターが指定され、1つは、インデックスとともに削除する文字を指定する pos です。2つ目は、文字列から削除する文字の長さまたは数を示す Len です。

コードスニペット:

#include <iostream>
using namespace std;

int main() {
  string str;
  cin >> str;
  cout << "Original String: " << str << endl;
  str.erase(str.size() - 1, 1);
  cout << "Required String: " << str << endl;
  return 0;
}

出力:

Original String: Hello
Required String: Hell

C++ で erase(iterator) 関数を使用して文字列の最後の文字を削除する

この関数は、削除する文字を指すイテレータという 1つのパラメータのみを取ります。したがって、インデックス付けは 0 から size()-1 まで開始されるため、パラメータとして size()-1 を渡します。これは、文字列の最後の文字を指すためです。

コードスニペット:

#include <iostream>
using namespace std;

int main() {
  string str;
  cin >> str;
  cout << "Original String: " << str << endl;
  str.erase(str.size() - 1);
  cout << "Required String: " << str << endl;
  return 0;
}

出力:

Original String: Hello
Required String: Hell

C++ で substr() メソッドを使用して文字列から最後の文字を削除する

substr() メソッドは、元の文字列からサブ文字列を返します。これには、サブストリングの開始インデックスと必要なサブストリングの長さの 2つのパラメーターが必要です。

開始インデックスを指定しない場合は、デフォルト値 0 が返され、長さが指定されていない場合は、文字列のすべての文字が使用されます。size() メソッドは文字列の長さを提供し、size()-1 は最後から 2 番目の文字までの長さを提供します。

コードスニペット:

#include <iostream>
using namespace std;

int main() {
  string str;
  cin >> str;
  cout << "Original String: " << str << endl;
  cout << "Required String: " << str.substr(0, str.size() - 1) << endl;
  return 0;
}

出力:

Original String: Welcome
Required String: Welcom

この関数の重要なポイントの 1つは、元の文字列を変更せずに、新しい文字列を作成することです。

C++ で resize() メソッドを使用して文字列から最後の文字を削除する

resize() メソッドは、コンテナの要素を挿入または削除することにより、文字列のサイズを変更し、コンテンツを変更します。文字列の長さを 1 減らす必要があるため、これを使用できます。

必要な文字列の長さを渡す必要があります。前に説明したように、size-1 は最後の文字を削除して文字列を指定します。

コードスニペット:

#include <iostream>
using namespace std;

int main() {
  string str;
  cin >> str;
  cout << "Original String: " << str << endl;
  str.resize(str.size() - 1);
  cout << "Required String: " << str << endl;
  return 0;
}

出力:

Original String: Welcome
Required String: Welcom

まとめ

このチュートリアルでは、文字列から最後の文字を削除し、上記の方法を使用してコード例を示すことができる 4つの異なる方法について説明しました。

C++ の標準テンプレートライブラリ(STL)の pop_back()erase()resize() および substr() メソッドの構文について学びました。

関連記事 - C++ String