C++のstringクラスの使い方について詳しく解説

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オブジェクト同士の比較

2つの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++で文字列を扱うために必要な基本的な操作です。

1 2 3

この記事のページ一覧
  1. 現在のページ
目次から探す