• ベストアンサー

C言語のプログラムについて

ファイルから単語を取り出すプログラムを調べていたところ、 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1361384328 このURLの質問で回答がでておりました。 このプログラムについて、 (1) int n = strlen(buf); (2) buf[n++] = c; (3) buf[n] = '\0'; の部分がどうなっているのか(どういう動きをするのか?意味?)教えていただきたいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.3

>strlenで単語の長さをはかり、その長さを格納する配列を用意し、文字を格納。ひとつ先の要素をnullとする。みたいなかんじですか? リファレンスとか入門書とかちゃんと読んだ方がいいでしょう。 int n = strlen(buf);  strlen()でbufに格納されている文字数(普通はバイト単位)を取得し、int型変数のnに格納。 buf[n] = c;  nの指す場所('\0'のある場所)にcを代入。 n = n + 1;  nを1つ進める。 buf[n] = '\0';  文字列終端を示す文字('\0')を代入。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

>配列中の++は何を表すのでしょうか 普通の入門書とかなら記載されているハズなんですけどねぇ。 「C言語 演算子」辺りで検索して下さい。 int n = strlen(buf); buf[n] = c; n = n + 1; buf[n] = '\0'; と同義です。

qwewqwe
質問者

補足

strlenで単語の長さをはかり、その長さを格納する配列を用意し、文字を格納。ひとつ先の要素をnullとする。みたいなかんじですか? strlen(buf)がなにを意味しているのか(どのような動きなのか)理解があいまいなので、詳しい流れを教えていただけませんか? 何度も申し訳ありません

すると、全ての回答が全文表示されます。
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

bufに格納されている文字列にcの文字をアペンドしてる。 char buf2[2]; buf2[0] = c; buf2[1] = '\0'; strcat(buf, buf2);

qwewqwe
質問者

補足

配列中の++は何を表すのでしょうか

すると、全ての回答が全文表示されます。

関連するQ&A