タグ

第8回 文字列

はじめに

前回は、同じ型のデータをまとめて管理する配列について学びました。

これまで学習してきたデータ型では、整数や小数、1文字を扱うことができました。

例えば、

  • 年齢
  • 身長
  • 成績

などはintdoubleで扱うことができます。

しかし、

  • 名前
  • あいさつ
  • メッセージ

などの文字の並びを扱うことはできません。

このような複数の文字が並んだデータを扱うために使用するのが文字列です。

今回の到達目標

  • 文字列とは何かを説明できる。
  • std::stringを使用して文字列を扱える。
  • 文字列の入力と出力ができる。
  • 文字列を連結できる。
  • 文字列の長さを取得できる。

文字列とは

文字列とは、複数の文字が並んだデータのことです。

例えば、

ChatGPT Hello World C++

などはすべて文字列です。

一方、

A

のような1文字は文字と呼びます。

文字と文字列の違い

C++では、文字と文字列を区別して表します。

種類

文字

'A'

文字列

"ABC"

文字は**シングルクォーテーション(')**で囲みます。

char c = 'A';

文字列は**ダブルクォーテーション(")**で囲みます。

std::string text = "ABC";

この違いは、今後プログラムを書くうえで重要になります。

std::string

C++では、文字列を扱うために**std::string**という型を使用します。

例えば、

#include <iostream> #include <string> int main() {    std::string name = "Taro"; }

のように宣言できます。

intが整数を扱う型であるように、

std::string

文字列を扱うための型です。

補足

現在は、std::stringを「文字列を扱うための型」と考えておけば十分です。

どのような仕組みで動いているのかなど、詳しい内容については、本講座の後半で標準ライブラリを学ぶ際に改めて解説します。

文字列を表示する

文字列は、これまで学習したstd::coutで表示できます。

#include <iostream> #include <string> int main() {    std::string name = "Taro";    std::cout << name; }

実行結果

Taro

整数や小数と同じように、変数へ保存した文字列を表示できます。

文字列を入力する

文字列は、std::cinを使用して入力することもできます。

#include <iostream> #include <string> int main() {    std::string name;    std::cout << "名前を入力してください。";    std::cin >> name;    std::cout << "こんにちは、" << name << "さん"; }

実行例

名前を入力してください。 Taro こんにちは、Taroさん

入力された文字列は、他のデータ型と同じように変数へ保存されます。

文字列を連結する

文字列同士は、+演算子を使用してつなげることができます。

#include <iostream> #include <string> int main() {    std::string first = "Hello";    std::string second = "World";    std::string message = first + " " + second;    std::cout << message; }

実行結果

Hello World

このように、複数の文字列を1つの文字列として扱うことができます。

文字列の長さを調べる

文字列の文字数を調べたい場合は、length()を使用します。

#include <iostream> #include <string> int main() {    std::string text = "C++";    std::cout << text.length(); }

実行結果

3

length()は、文字列に含まれる文字数を返します。

入力するときの注意

std::cinは、空白までを1つの文字列として読み取ります。

例えば、

Taro Yamada

と入力すると、

保存されるのは

Taro

だけです。

空白を含む文章全体を入力する方法もありますが、その方法については標準ライブラリを学ぶ際に詳しく解説します。

まとめ

今回は、文字の並びを扱うための文字列について学びました。

  • 文字列とは、複数の文字が並んだデータです。
  • 文字と文字列は異なるデータです。
  • std::stringは文字列を扱うための型です。
  • std::coutstd::cinを使用して文字列を入出力できます。
  • +演算子を使用すると文字列を連結できます。
  • length()を使用すると文字列の長さを取得できます。

これで、数値だけでなく、名前や文章などの文字列も扱えるようになりました。

次回は、同じ処理を何度も利用するための関数について学びます。