問題文:A君は、学校の宿題で配列str1に代入した文字列の文字数を表示するプログラムを作成した(リスト1)。文字数のカウントには、sizeof関数を使用し、配列のヌル文字手前までを取得し、表示することにしている。A君の想定では、以下のようになるはずだが、うまくいかない(リスト2)。「char str1[5] = {'a','b','c','d','\0'};」と宣言しているはずなのに、実行結果が「count = 4」とならず、「count = 5」となる。上記の情報から、A君が期待する結果となるように修正せよ。
/* 文字数表示プログラム CountString.c 仕様: 文字列str1に文字を代入し、文字数を表示する。 */ #include <stdio.h> int main(){ // 変数宣言 int count = 0; char str1[5] = {'a','b','c','d','\0'}; // 文字数を取得 count = sizeof(str1); // 文字数を表示 printf("count = %d\n", count); return 0; }
count = 5
Copyright © ITmedia, Inc. All Rights Reserved.