- ベストアンサー
文字列
文字列をつかったプログラムの練習をしています。 friend fri end のように入力した文字列を半分ずつ表示するプログラムを作りたいんですけど 繰り返しやポインタを使わずに作ることはできますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
char buf[80] = "friend"; char lead[80], tail[80]; int n = strlen(buf) / 2; strncpy (lead, buf, n); lead[n] = '\0'; strcpy (tail, &buf[n]); ---- 文字操作関数に渡すときにポインタ(アドレス)を渡すことになるので、厳密にポインタを排除して、ループ無しで作るのは無理だと思います。
その他の回答 (1)
- GOLDEN
- ベストアンサー率46% (283/607)
strに入った文字列をstr1とstr2に分割するとしますね ------------------------------------------------------------ #include <string.h> (略) strncpy(str1,str,sizeof(str)/2); // strの先頭から半分をコピー str1[sizeof(str)/2] = '\0'; // str1の最後にNullを付加 strcpy(str2,str + (sizeof(str)/2)); // strの残りをコピー (略) ------------------------------------------------------------- でどうでしょう? 厳密にはポインタを使わず・・・ではないですけどね(^^;
お礼
ありがとうございます!! あの・・・sizeofってなんですか? 私の持っている参考書に載ってなくて・・・は超ビギナー向けだから?!(>_<)
お礼
ありがとうございます!! やっぱ無理ですか・・・。わかりました(^-^) ポインタにはまだ慣れてないので、ポインタなしでできたらいいなと思ったのですが。やっぱりポインタって慣れると便利らしいのでがんばって勉強します!!