C++

stringクラス

更新日:

stringクラスとは

C言語では文字列を扱う際、文字型の配列として定義しました。
C++ではこの方法も使えますが、もっと便利な仕組みを持っています。
それがstring型です。

文字列

この機能ではstringクラスのオブジェクトとして文字列を保管します。
その為、文字列の扱いに便利なメンバ関数を持っています。

また、サイズを自動的に変更してくれるのでメモリ容量内であればいくらでも文字列を後から拡張できます。

stringクラスの使い方

stringを使うには<string>をインクルードする必要があります。

#include <string>

また、std::を使うのでusing namespaceでstdを指定しておくと良いでしょう。

using namespace std;


以降、std::を省略して解説します。

stringオブジェクトの生成、初期化は普通の変数と同様にできます。

string str;
str = "Hello, world";

引数をとることで定義の際に初期化出来ます。

string str("Hello, world");

出力も変数と同様に指定するだけです。

cout << str << endl;

簡単ですね。

メンバ関数

stringクラスがサポートする文字列に関する関数をいくつか紹介します。

関数 意味
length() 文字列の長さを返す
begin() 文字列の先頭のイテレータを返す
end() 文字列の最後尾のイテレータを返す
find() 指定した文字列を検索する
empty() 文字列が空ならtrue、空でなければfalseを返す

演算

最後にstring型の演算について解説します。

配列を使った文字列の表現方法では、比較や連結をするのに関数を用いていました。
これは配列が演算をサポートしていない為です。

ところが、string型のオブジェクトは演算子を使った演算をサポートしています。
ここでは連結と比較を紹介します。

string_sample.cpp

string str1, str2, str3;
str1 = "Hello";
str2 = str1 + ", world.";
str1 += str2;
str3 = str1 + str2;

このように代入、加算演算子で連結することができます。

続いて比較です。
こちらも変数と同様に比較演算子で比較することができます。

str1 == str2


str1 == "Hello"


string型のオブジェクト同士だけでなく文字列リテラルとの比較も可能です。

文字列操作関数と比べて格段にわかり易くなっていることがわかるでしょう。
過去に書いた文字列を使ったソースコードをstringに書き換えてみてはどうでしょう。

文字列操作関数



-C++

Copyright© ツナのエンジニアブログ , 2025 All Rights Reserved Powered by AFFINGER5.