- ベストアンサー
文字列ポインタを結合
タイトルの日本語が間違っていたらすみません。。 *x="AB" と *y="CD" をstring.hを使わずに連結させたものを新しい*strなどに入れることはできますか??(@_@)
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
// 余裕のある文字列を 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++; } といった具合でしょう
その他の回答 (3)
- 1418982
- ベストアンサー率20% (1/5)
strcatを使うのが一番だと思いますが、代用するなら char *strcat(char *s1,const char *s2) { char *p = s1; while(*s1) s1++; /*文字列終端まで持ってくる(TABがつかえねぇ~)*/ while(*s1++ = *s2++) /*s1の後ろからs2の中身を代入*/ ; return(p); } ...とあってるかどうかわかりませんがこんな感じですかねぇ。 (ちなみにs1の後ろにs2がつきます、はい)
お礼
回答ありがとうございます!
- jacta
- ベストアンサー率26% (845/3158)
> 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; } でどうでしょうか?
お礼
ありがとうございます!
- tatsu99
- ベストアンサー率52% (391/751)
#1の方が回答を書いてますので、その通りなのですが、 通常は、string.hを使用する方が簡単です。 私としては、どうしてstring.hを使いたくないのかということに、非常に興味があります。 差し支えなければ、このような質問をされた理由を教えていただけませんでしょうか。
お礼
参考書ではすべてstring.hを使っているものしか載っていなかったので気になっただけです(>_<) すみません(^_^;)
お礼
ありがとうございます! 出来ました(^_^)