今日は9章文字列の基本をやりました。まとめるお(・ω・)/

*文字列配列の最後には\0が入る

char ch [] = "String";

この場合配列には
ch[0]  ch[1]  ch[2]  ch[3]  ch[4]  ch[5]  ch[6]
 S         t           r        i         n        g       \0

と格納されます。\0は文字列の最終を表す目印です。

なので以下のようなプログラムがあった時

char ch = "HA\0JI";

printf( "%s"   ,   ch);

出力されるのはHAです。

*文字列の2次元配列

char str[][5] = {"ABCD","EFG","HI"};

この配列の場合
str[0][0] str[0][1] str[0][2] str[0][3] str[0][4]
  A   B    C    D   \0
str[1][0] str[1][1] str[1][2] str[1][3] str[1][4]
  E     F    G    \0   \0
str[2][0] str[2][1] str[2][2] str[2][3] str[2][4]
  H     I    \0   \0   \0

という風に文字が格納されます。
便利な事にstr[0]="ABC",str[1]="EFG",str[2]="HI"と格納されているので

for(int i = 0; , i < 3, i++){
printf("%s"  , str[i]);
}

という風にかけば全ての文字が表示されます。
普通の数字の2次元配列ではforを2回しないと表示できないので楽です(・∀・)

*文字列配列を空文字列にする
空文字列にするには

char str[] = "HI";
char str[0]= '\0 ';

と言うように配列の一番始めに\0 を入れればOK!

*printfとscanfの変換指定子
printf
変換指定子    出力  データ型
%d      10進数  int
%o       8進数
%f        実数  foloat double
%c                  1文字  char
%s                 文字列

scanf
変換指定子    出力  データ型
%d      10進数  int
%o       8進数
%f        実数  foloat
%lf         実数  double
%c                  1文字  char
%s                 文字列


scanfはアドレスに格納するので&変数名で記述する。
文字配列の場合配列名だけでアドレスを表すので&はいらない。

今日はここまで。明日は会社の研修があります(ノω・、)たぶん、ネットワークの基礎についてなので明日はそれを報告するお