• ベストアンサー

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% (2177/4070)
回答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% (2177/4070)
回答No.2

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

qwewqwe
質問者

補足

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

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.1

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

qwewqwe
質問者

補足

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

関連するQ&A

  • PIC C言語プログラム

    PIC16F887を使っています。 Bポート変化割り込みはあるのですが、下のページでAポート変化割り込みというもの があります。Aポート変化割り込みは出来るのでしょうか。 また、できるのであれば方法を教えてください。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1422766564

  • C言語について。

    C言語プログラマとしては、スタートアップコードは・・・ ・自分が書いたプログラムを、直接動かすために必要なライブラリ ・それはコンパイル後、リンカによって追加されるライブラリこれは、 どういう意味でしょうか?分かりやすく教えていただけると幸いです。すみません。で、 以下のかぶくんまんさんの回答です。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11247611941 で、 C言語におけるプログラミングとは「main関数を書くこと」に他ならない。なぜ「main関数を書く」ことがC言語におけるプログラミングに他ならないのかと言えば、それは偏に「C言語のコンパイラはmain関数を呼び出すプログラムを生成するから」です。それがmain関数を求めるので結果的にmain関数がリンクされ、そしてmain関数が求めるままに他の関数もリンクされていくわけです。 で、その「main関数を呼び出すプログラム」こそが、C言語における「スタートアップコード」。 という回答で、main関数以降は、プログラマが書くのですよね?プログラマが関数をリンクさせる様なプログラムを書くということでしょうか?教えていただけると幸いです。すみません。 という所が分かりません。教えていただけると幸いです。すみません。以下のURL https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12247932542

  • 言語バーの色を変えたい。

    下記のURLに言語バーの色を変える方法が載っていたのですが このような機能は、windows7にはないのでしょうか?。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q139678103

  • 海外旅行の質問に対する、嫌がらせ

    このサイトで、以下のような質問をした場合に嫌がらせはありますか?。 別のサイトの質問ですが、 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1487977674 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1387974503 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1187973456 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1487970979 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1487969879

  • javascriptについて質問です。

    http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13137263268 上記のURLのベストアンサーになったプログラムはどのように表示すればよろしいでしょうか?

  • 知恵袋では余り回答が来ません 何故でしょうか?

    http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13138542748 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14138542709

  • これら回答者は統合失調症だと思いますか?

    http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14136843289 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1343218888

  • プログラムの説明

    プログラムの説明 今回教えていただきたいプログラムは、 2次元ラプラス方程式を差分方程式で解くサンプルプログラムなのですが、 この文章の説明の意味もプログラムについてもほとんど理解できません。 ・2次元ラプラス方程式を差分方程式で解くプログラムとは一体どのようなものなのか、 ・プログラムの流れ、 ・プログラムでは具体的にどのような計算、動作をしているのか、 これらを教えていただきたいです。 めんどうだとは思いますがお願いします。 以下プログラムですが、文字数をオーバーしてしまうため、 半分ずつ貼り付けておきます。 お手数ですが、前半部、後半部をワードパットに貼り付けるなりして、見ていただけると幸いです。 前半部 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1035245510 後半部 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1235245557

  • lim(n→∞)nr^n=0

    問題は画像の(2)で lim(n→∞)nr^n=0を示す問題です。 (さっきした質問です↓) http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1490795419 この解答として 画像のようになっているのですが 明らかに0<nr^n というところがよくわかりません(><) (1)のn≧2をうけているのでしょうか… お願いします(><)

  • 漸化式の問題

    http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1228697642 の回答にある >b[n]が等比数列になるための条件は、 >すべてのnについて(2α+2)n+2β-α-1=0 でなぜ等比数列になるための条件がこのようになるのかがわかりません。 ご教授よろしくお願いします。