- ベストアンサー
strcatについて
こんな感じでstrcatを使ってみましたが、AfxMessageBox( aa );で表示させてみるとaaとbbの連結させたものではなく、bbが表示されてしまいます。 どうしてなのでしょうか? void forder(CArray<CString,CString>* p_arrayTest){ char str[2][256] ; char *tp[2]; strcpy(str[1],(*p_arrayTest)[1]); tp[1] = strtok( str[1], " " ); char aa[40] , bb[40] ; strcpy( aa , "C:\\test\\" ); strcpy( bb , tp[1] ); strcat( aa , bb ) ; AfxMessageBox( aa ); }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あり得ない。 #include <string.h> #include <stdio.h> int main() { char aa[40]; char bb[40]; strcpy(aa, "hello, "); strcpy(bb, "world"); strcat(aa, bb); puts(aa); return 0; } ちゃんと "hello, world" と表示されます。
その他の回答 (1)
- MovingWalk
- ベストアンサー率43% (2233/5098)
strcat()の使い方は間違いありません。 今後のこともあるので、変数値の確認をデバッガで行なうことも覚えて おくといいですよ。 AfxMessageBox( aa ); にブレークポイントを設定して実行し、 変数aaの値を確認してみてください。
お礼
回答ありがとうございます。 デバッガで確認したらちゃんと出来てました。 文字列bbが長かったため、目の錯覚で出来てないと思い込んでいました。
お礼
>あり得ない。 確かに、良く見たらちゃんと出来てました。 回答ありがとうございます。