C++には、文字列を扱うためのstringクラスがあります。
このクラスは、C言語の文字列処理関数よりも使いやすく、安全性が高いとされています。本記事では、stringクラスの基本的な使い方から応用的な機能までをわかりやすく解説します。
stringクラスとは
stringクラスは、C++の標準ライブラリで提供される文字列を扱うためのクラスです。
C言語では文字列をchar型の配列として扱っていましたが、stringクラスを使うことでより簡単かつ安全に文字列を扱うことができます。
stringクラスは、<string>ヘッダファイルをインクルードすることで使用することができます。また、stdという名前空間に属しています。
以下は、stringクラスを使ったサンプルコードです。
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
std::cout << str << std::endl;
return 0;
}
このコードでは、"Hello, world!"
という文字列をstr変数に代入し、その後std::cout
で出力しています。
stringクラスの基本的な使い方
C++にはstringクラスがあり、文字列を扱う際に便利です。ここでは、stringクラスの基本的な使い方について説明します。
stringオブジェクトの生成
stringオブジェクトを生成するには、以下のように記述します。
#include <string>
int main() {
std::string str;
return 0;
}
stringオブジェクトの初期化
stringオブジェクトを初期化する方法は複数あります。以下に代表的なものを紹介します。
デフォルトコンストラクタ
デフォルトコンストラクタを使用して初期化する場合、以下のように記述します。
std::string str = std::string();
文字列リテラルから初期化
文字列リテラルから初期化する場合、以下のように記述します。
std::string str1 = "";
std::string str2 = "Text";
別のstringオブジェクトから初期化
別のstringオブジェクトから初期化する場合、以下のように記述します。
std::string str1 = "こんにちは";
std::string str2 = str1;
stringオブジェクトへの代入
既存のstringオブジェクトに新しい値を代入する場合、以下のように記述します。
std::string str1 = "こんにちは";
str1 = "新しい文字列";
stringオブジェクト同士の比較
二つのstringオブジェクトが等しいかどうか比較する場合、以下のように記述します。
std::string str1 = "こんにちは";
std::string str2 = "さようなら";
// == で比較できる
bool result = str1 == str2;
また、大小関係を比較する場合は以下のように記述します。
//文字列の長さではなく文字コード順で判定される
if (str1 < str2) {
std::cout << "str1 is less than str2" << std::endl;
} else if (str1 > str2) {
std::cout << "str1 is greater than str2" << std::endl;
} else {
std::cout << "str1 and str2 are equal" << std::endl;
}
以上が、C++で文字列を扱うために必要な基本的な操作です。