🔤 文字列
%s で表示すると、狙った文字列の後ろに文字化けが延々と続きます。strlen が想定外の大きな値を返します。運が悪いと AddressSanitizer: stack-buffer-overflow で落ちます。
Cの文字列は「char配列+終わりの目印 \0」という約束事です。char s[3] = {'B','o','b'}; は3文字ぴったりで終端を置く場所がないため、どこまでが文字列なのか誰にも分かりません。
配列は文字数+1で確保します(char s[4] = "Bob";)。1文字ずつ組み立てたときは最後に s[i] = '\0'; を必ず置きます。char s[32] = {0}; と全体を0初期化しておくと、書き忘れても終端が残るので事故が減ります。
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。