• ベストアンサー

文字列ポインタを結合

タイトルの日本語が間違っていたらすみません。。 *x="AB" と *y="CD" をstring.hを使わずに連結させたものを新しい*strなどに入れることはできますか??(@_@)

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

// 余裕のある文字列を strに与えておく char *str = " "; char *p = str, *w; for ( w = x; *w != NULL ; w++ ){ *p = *w; p++; } w = y; while( *w != NULL ) { *p = *w; p++; w++; } といった具合でしょう

apple_cube
質問者

お礼

ありがとうございます! 出来ました(^_^)

その他の回答 (3)

  • 1418982
  • ベストアンサー率20% (1/5)
回答No.4

strcatを使うのが一番だと思いますが、代用するなら char *strcat(char *s1,const char *s2) { char *p = s1; while(*s1) s1++; /*文字列終端まで持ってくる(TABがつかえねぇ~)*/ while(*s1++ = *s2++) /*s1の後ろからs2の中身を代入*/ ; return(p); } ...とあってるかどうかわかりませんがこんな感じですかねぇ。 (ちなみにs1の後ろにs2がつきます、はい)

apple_cube
質問者

お礼

回答ありがとうございます!

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

> string.hを使わずに連結させたものを ということはstdio.hなら使っても良いのですね。 #include <stdio.h> int main(void) {  char *x[1], *y[1];  char z[100];  char *str[1];  *x = "AB";  *y = "CD";  *str = z;  sprintf(*str, "%s%s", *x, *y);  return 0; } でどうでしょうか?

apple_cube
質問者

お礼

ありがとうございます!

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

#1の方が回答を書いてますので、その通りなのですが、 通常は、string.hを使用する方が簡単です。 私としては、どうしてstring.hを使いたくないのかということに、非常に興味があります。 差し支えなければ、このような質問をされた理由を教えていただけませんでしょうか。

apple_cube
質問者

お礼

参考書ではすべてstring.hを使っているものしか載っていなかったので気になっただけです(>_<) すみません(^_^;)

関連するQ&A