- ベストアンサー
文字列の反転
こんばんわ。C言語初学者の者です。早速質問させてください。 (1) char a; aの中身には、アルファベット小文字の文字列が5個並んでいるとします。 その文字列を前後反転させるにはどうすればいいでしょうか? 例えばabcdeと並んでいる文字列をedcbaとする場合です。(キーボードからabcdeと打ち込んだとき、aにedcbaと格納させたいのです) (2) char a; char b; 中身は文字列で、二つを合体させたい場合どうすればいいのでしょうか? 例えば aにはth 、bにはatと格納されている場合thatと繋げたいのです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
(1) 皆様がおっしゃっているように、char aには1文字しか入りません。 適宜修正しつつプログラムを書くとこんな感じでしょうか。 char a[128]; // 最大127文字 int i; int length; scanf("%s", a); printf("input str = %s\n", a); length = strlen(a); for(i=0; i<length/2; i++){ // a[i] と a[length-i-1] を交換 char tmp; tmp = a[i]; a[i] = a[length-i-1]; a[length-i-1] = tmp; } printf("output str = %s\n", a); 手元ではこれで input str = abcde output str = edcba と出力されました。 (2)はstrcat()という関数でできます。 char a[128] = "hello"; char b[128] = " world"; strcat(a, b); printf("%s\n", a); これで hello world と出力されます。
お礼
丁寧にありがとうございます!!!