• 締切済み

文字列の入れ替え

2つのchar型配列x[],y[]に格納された文字列を入れ替えるプログラムを作成せよ。ただし入替え処理には、関数swap_array(char [],char [])を作成して用いること。という問題なのですが、下記の実行例では、2つの文字列xとyをキーボードから入力し、入れ替えた後に表示している。 <実行例> % ./irekae 文字列x (20字まで)? Mojiretsu 文字列y (20字まで)? Irekae 関数swap_array()を呼び出しました 入替後の x: "Irekae" 入替後の y: "Mojiretsu" % となっているのですが文字列を格納するところまでしかわかりません。 どなたか教えていただけないでしょうか? #include<stdio.h> int main(void) { char x[21]; char y[21]; printf("文字列 (20字まで)? "); scanf("%s", x); printf("文字列 (20字まで)? "); scanf("%s", y);

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

> char tmp[21]; 課題の回答ってこんなもんですよ mallocもまだ習ってないでしょうし

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.3

> char tmp[21]; その神の啓示としか思えぬ要素数の取得はいかがなものかと。

回答No.2

文字列の入れ替えは、作業用の変数を準備してコピー3回すればできると思います。 こんな感じ? #include <string.h> void swap_array(char x[], char y[]) {  char tmp[21];  strcpy(tmp,x);  strcpy(x,y);  strcpy(y,tmp); }

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

swap_array() の要件がわかりません。補足にどうぞ。