- ベストアンサー
strcpy(&... のような記述ができるのか
現在C言語を習っている専門学校生です。 基本情報技術者を受けようと思い、以前に知り合いから貰ったアイテックの 予想問題集2005春をやっていましたが、その中に、 「単語を行末できれないように英文を出力する」という関数についての 問題がありましたが、 そこでstrcpy(&...という表現があり、ずっと勉強につかってきた「独習C 第3版」 ではこういう記述がなかったので、こういう記述は現実にあるのかどうか わからなく、ずっと悶々としておりましたが、いい加減に自己解決できそうになく、 今回投稿させていただきました。 以下がそのプログラムの一部を抜き出したものです。 #include <stdio.h> #include <string.h> #define BUFFMAX 1024 #define WORDMAX 16 void wordwrap (char str[], int max) { char word[BUFFMAX / 2][WORDMAX], buff[BUFFMAX]; int leng[BUFFMAX / 2], i, idx, cnt, pos; /*文字列を単語に分解する*/ ... /*出力する*/ ... i = pos = 0; while (i <= idx) { if ((pos + leng[i]) > max) { buff[pos - 1] = '\0'; printf("%s\n",buff); pos = 0; } strcpy(&buff[pos], word[i]); ... } 事前にネットで「strcpy(&」で検索をしてみましたが、RSSリーダーを作るという記事(http://www.okisoft.co.jp/esc/tsu/make_rss_reader_7_003.html)でそれでも「strcpy( &(buf[i]), "月" );」などの表現はありましたが、疑問の解決には至らず、今はこの問題を作成した人が血迷っただけなのかな・・・とかしか考えていません。 どうかお時間のあるときで結構ですので、お答えいただければ幸いに思います。 どうかよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
お礼
結局今回ご質問「strcpy(&」という構文がVisual C++ やBorland C++など一般的なコンパイラで規定されていて使えるかどうかをしりたかっただけでしたが、皆さん詳細なご説明をいただけて自分が勘違いしているだけだということがわかり本当に助かりました。特にS117さんには基本からきちんと解説していただきとてもよくわかりました。また、何かわからないところがでましたら質問させてもらいたいと思います。 今回は本当にありがとうございました。