文字列
ちなみに string は日本語で糸なんだけど、いまいちイメージに合わないので文字列と訳す
何気なく使っていた "これ"
だけど、もう少し解説しておく。
この文字列 (C++ では C文字列 ともいわれる) は、連続した char
の塊。
ヌル文字 という文字 ('\0'
) があならず最後に来る。
char text[] = { 'B', 'E', 'A', '\0' };
↑ と ↓ は同じ!
char text[] = "BEA"; // こう見えて 4 要素ある
配列と違ってヌル文字が必ずあるので、長さに依存しない、こんなループ処理が書ける。
#include <iostream>
int main() {
char text[] = "BEA";
for (int i = 0; text[i] != '\0'; ++i) {
++text[i]; // 文字が一つ次に進む
}
std::cout << text; // CFB
}
ただ、文字列だと文字を足したりくっつけたりとかはできない。
同じことは std::string
でもできる。
#include <iostream>
#include <string>
int main() {
std::string text = "BEA";
for (int i = 0; i < text.size(); ++i) {
++text.at(i); // at メンバ関数で要素にアクセス
}
std::cout << text; // CFB
}
あんまり文字列を使うメリットはないので、変更したりするときは絶対に std::string
を使おうね。