C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++で文字列の配列を定義・操作する方法を解説

この記事では、C++において文字列の配列をどのように定義し、扱うのかを詳しく解説します。

C言語との違い:文字列配列の基礎知識

C言語には文字列型が存在しないため、文字列はchar型の配列(文字配列)として表現する必要がありました。そのため、複数の文字列をまとめて管理する「文字列の配列」を作るには、2次元のchar型配列を用意し、各行に異なる文字列を格納するという手法が取られていました。これは直感的ではなく、コードも冗長になりがちでした。

一方、C++ではstd::stringクラスが標準ライブラリとして提供されています。このクラスのオブジェクトを使えば、文字列データを効率的かつ安全に格納・操作できます。さらに、C++ではオブジェクトの配列を簡単に作成できるため、stringオブジェクトの配列、すなわち「文字列の配列」も非常にシンプルに実装できます。

方法1:string型の配列を使う

まずは最も基本的な方法です。string型の通常の配列を宣言し、初期化リストで複数の文字列を一度に設定します。

#include<iostream>
using namespace std;
int main() {
   string animals[4] = {"Elephant", "Lion", "Deer", "Tiger"}; // string型の配列
   for (int i = 0; i < 4; i++)
      cout << animals[i] << endl;
}

出力結果

Elephant
Lion
Deer
Tiger

このように、C言語時代のような2次元文字配列を意識することなく、各要素に自然な形で文字列を代入できるのがstringクラスの大きな利点です。

方法2:vector<string>を使う

次に、C++標準ライブラリのvectorコンテナを使った方法を見ていきましょう。vectorは内部で動的に確保された配列を使用しており、要素数を実行時に柔軟に変更できる点が特徴です。push_back()メソッドで文字列を順次追加していけば、事前にサイズを決める必要がないため、より実用的なケースが多くあります。

#include<iostream>
#include<vector>
using namespace std;
int main() {
   vector<string> animal_vec;
   animal_vec.push_back("Elephant");
   animal_vec.push_back("Lion");
   animal_vec.push_back("Deer");
   animal_vec.push_back("Tiger");
   for(int i = 0; i<animal_vec.size(); i++) {
      cout << animal_vec[i] << endl;
   }
}

出力結果

Elephant
Lion
Deer
Tiger

まとめ

C++で文字列の配列を扱う方法は主に2つあります。要素数が固定であればstring型の配列がシンプルで高速です。一方、実行時に要素を追加・削除したい場合はvector<string>が最適です。状況に応じて使い分けることで、安全で可読性の高いコードを書くことができます。

  1. C++で配列を並べ替える方法|選択ソートの仕組みと実装例を解説

    C++では、さまざまなソート(並べ替え)アルゴリズムを使って配列を整列できます。ソート済みの配列とは、数値の大小順やアルファベット順など、何らかの基準に従って要素が並び替えられた配列のことです。代表的なソートアルゴリズムには、バブルソート、挿入ソート、選択ソート、マージソート、クイックソート、ヒープソートなどがあります。本記事では、その中でも構造がシンプルで理解しやすい「選択ソート」を取り上げ、実際のコード例とともに詳しく解説していきます。 選択ソートとは? 選択ソートは、未ソート部分の中から最小値を繰り返し探し出し、それを未ソート部分の先頭にある要素と交換することで、配列全体を昇順に整列さ

  2. C++で文字列の配列を作成する方法【サンプルコード付き】

    はじめにC++では、stringキーワード(std::string)を使用することで、文字列の配列を簡単に作成できます。本記事では、この手法を用いたC++プログラムの具体的な例を、アルゴリズム・サンプルコード・実行結果とともにわかりやすく解説します。アルゴリズム処理の流れは以下の通りです。開始 stringキーワードを使用して配列の各要素を文字列で初期化する 配列の内容を出力する 終了サンプルコード#include<iostream> #include<bits/stdc++.h> using namespace std; int main() { &nbs