第8回 文字列
はじめに
前回は、同じ型のデータをまとめて管理する配列について学びました。
これまで学習してきたデータ型では、整数や小数、1文字を扱うことができました。
例えば、
- 年齢
- 身長
- 成績
などはintやdoubleで扱うことができます。
しかし、
- 名前
- あいさつ
- メッセージ
などの文字の並びを扱うことはできません。
このような複数の文字が並んだデータを扱うために使用するのが文字列です。
今回の到達目標
- 文字列とは何かを説明できる。
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::coutやstd::cinを使用して文字列を入出力できます。+演算子を使用すると文字列を連結できます。length()を使用すると文字列の長さを取得できます。
これで、数値だけでなく、名前や文章などの文字列も扱えるようになりました。
次回は、同じ処理を何度も利用するための関数について学びます。