- 締切済み
文字列処理関数について
おみくじのプログラムを書きました。初めのが私のもので、次のが参考書のものなのですが、なんでわざわざ 文字列処理関数を使うのかがわかりませんでした。 教えてください!! int main() { int r =0; int i =0; srand(time(NULL)); r = rand()%3+1; for(i=0;i<2;i++){ if(r == 1) { printf("大吉:充実した1日\n"); } else if(r == 2) { printf("小吉:充実した1日\n"); } else { printf("凶:衝動買いに注意\n"); } return 0; } ********************** ********************** main(){ int kuji; char kekka[6]; char str[45]; srand(time(NULL)); r = rand()%3+1; switch(kuji){ case 1: strcpy(kekka,"大吉"); strcpy(str,"金運アップ"); break; /*case2,3は省略します*/ default: break; } printf("%s:%s",kekka,str); return 0; }
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
出力を一箇所にまとめたかったのかなと思います。
- ddnp009
- ベストアンサー率25% (15/58)
おみくじの、 1.結果を作る部分(rand~のあたり) 2.表示する部分(printf~のあたり) この2つを分離したかったんだと思いますよ。 1は内部処理。 2はユーザインターフェイス。 ↑が分けてあるのはいい設計だと思います。 良い参考書をお持ちですね。 文字列処理の関数は、これを実現するために 出てきただけだと思います。
お礼
こういうのがいい設計なんですか~。なるほど。 この参考書大切にしなくては(笑) 有難うございました!!
- osamuy
- ベストアンサー率42% (1231/2878)
あんまり意味は無いかと。サンプルなので、ここでstrcpy()を紹介したかっただけでは。 ただ拡張性や保守性を考慮するなら、code55さんが書かれたものよりは、参考書のもの方が多少良いかなと思えます。
お礼
そうですよね? 何か重要なことかと思ってしまいました。 有難うございました!!
お礼
? 勉強不足みたいです(笑) 有難うございました!!