===== レッツ文字列 =====
すでに文字型はマスターしたと思います。\\
次に、文字列型を使ってみます。\\
\\
* 用語
* 文字列リテラル
* C++で文字列を表すために使われる記述方法
* [[https://www.sophia-it.com/content/%E6%96%87%E5%AD%97%E5%88%97%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB|文字列リテラル]]
* 簡単に言うと、ソースこーこ中に直接記述されている文字列の事
* 文字列は、""←ダブルクォーテーションで囲むんだよ。って初めのころに教えました。
* これが文字列リテラル
* 文字列リテラルの例
* "mojiretsu"
* "日本語でおけ"
* "オマエモナー"
C++のプログラム中では、文字列は、```string```型の変数として扱います。\\
変数は、今で学んだ変数と同様に命名ルールを守っていれば好きな名前を設定できます。\\
```string```型の初期化には、文字列リテラルが使われます。\\
つまり、以下の様に初期化されます。\\
string str = "string literal";
プログラミングで使う記号たち!
* ~ チルダ
* ^ ハット(キャレット)
* - ハイフン
* _ アンダースコア
* \ 円マーク(バックスラッシュ)
* " ダブルクォート(ダブルクォーテーション)
* ' シングルクォート(クォート)
* ` バッククォート
* ; セミコロン
* : コロン
\\
#include
#include
using namespace std;
int main()
{
//char moji=11;//文字1文字を記憶できる型
//char moji2 = 'u';//文字リテラル:文字に見えるけど番号を代入してる
//cout << moji << endl;
//cout << moji2 << endl;
//for文でアスキーコードの文字の部分
//32~126まで?を表示してみよう
char a0 = 'h';
char a1 = 'e';
char a2 = 'l';
char a3 = 'l';
char a4 = 'o';
char a5 = '!';
//"hello!" 文字列リテラル
string str = "hello!";
string str2 = "world!";
//coutはすげーやつなので、大体のC++の型を<<で流してやると
//その方に合わせた表示をしてくれる(ように作られている)
cout << a0 << a1 << a2 << a3 << a4 << a5 << endl;
cout << "hello!" << endl;
str = str + str2;
cout << str << endl;
//0から数えた4文字目(5文字目)を取り出す
cout << str[4] << endl;
//for文でhello!world!を縦に表示
//str[0][1][2][3][4][5][6][7][8][9][10][11]
// 'h''e''l''l''o''!''w''o''r''l' 'd' '!'
//str.size()で文字数を取得できる!
//この文字列の中で、!がそれぞれ何文字目かを表示!
for (int i = 0; i < str.size(); i++)
{
//cout << str[i] << endl;
if (str[i] == '!')
{
cout << "!は" << i << "文字目です" << endl;
}
}
string str3 = "hello!world!";
if (str == str3)
{
cout << str <<"と" << str3 << "は同じ文字列" << endl;
}
else {
cout << str << "と" << str3 << "は別の文字列" << endl;
}
/*for (char i = 32; i < 127; i++)
{
cout << i;
if ((i + 1) % 16 == 0)
cout << endl;
}*/
return 0;
}