dポイントプレゼントキャンペーン実施中!

こんばんわ。C言語初学者の者です。早速質問させてください。
(1)
char a;
aの中身には、アルファベット小文字の文字列が5個並んでいるとします。
その文字列を前後反転させるにはどうすればいいでしょうか?
例えばabcdeと並んでいる文字列をedcbaとする場合です。(キーボードからabcdeと打ち込んだとき、aにedcbaと格納させたいのです)


(2) char a;
  char b;
 中身は文字列で、二つを合体させたい場合どうすればいいのでしょうか?
 例えば aにはth 、bにはatと格納されている場合thatと繋げたいのです。

 よろしくお願いします。

A 回答 (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
と出力されます。
    • good
    • 1
この回答へのお礼

 丁寧にありがとうございます!!!
 

お礼日時:2008/03/08 02:49

初学者ということで無理もないと思いますが文章がめちゃくちゃです。


(2)にいたっては合体の定義が曖昧です。
単に任意のアドレス空間上で連続であれば良いのかとか。
もう一度よく考えてから質問した方があなたのためです。
考えることは解を得ること以上に重要なことです。
では。
    • good
    • 0

>aの中身には、アルファベット小文字の文字列が5個並んでいるとします。


a は char 型なので、アルファベット 1 文字しか格納できません。
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!