• 締切済み

文字列処理関数について

おみくじのプログラムを書きました。初めのが私のもので、次のが参考書のものなのですが、なんでわざわざ 文字列処理関数を使うのかがわかりませんでした。 教えてください!! 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; }

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

出力を一箇所にまとめたかったのかなと思います。

code55
質問者

お礼

? 勉強不足みたいです(笑) 有難うございました!!

  • ddnp009
  • ベストアンサー率25% (15/58)
回答No.2

おみくじの、  1.結果を作る部分(rand~のあたり)  2.表示する部分(printf~のあたり) この2つを分離したかったんだと思いますよ。  1は内部処理。  2はユーザインターフェイス。 ↑が分けてあるのはいい設計だと思います。 良い参考書をお持ちですね。 文字列処理の関数は、これを実現するために 出てきただけだと思います。

code55
質問者

お礼

こういうのがいい設計なんですか~。なるほど。 この参考書大切にしなくては(笑) 有難うございました!!

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

あんまり意味は無いかと。サンプルなので、ここでstrcpy()を紹介したかっただけでは。 ただ拡張性や保守性を考慮するなら、code55さんが書かれたものよりは、参考書のもの方が多少良いかなと思えます。

code55
質問者

お礼

そうですよね? 何か重要なことかと思ってしまいました。 有難うございました!!