|
分類:[C/C++]
WinXP VC++2003
初心者でVCを勉強中です。
文字列の扱いについていくつか質問させてください。
【質問1】 ポインタの文字列同士はどのようにしたら連結できますか?
例: char* a = "ABCDEFG"; char* b = "HIJKLMN";
自分としてはaを定義した後でaの文字数を取得し、その文字数分のchar変数を用意。 それをbと連結するイメージなのですが、もっと簡単な方法はあるのでしょうか?
char* a = "ABCDEFG"; char c[strlen(a)] = a;
strcat(c,b);
【質問2】 strcatで文字数がオーバーしてもちゃんと表示されます。 このオーバーした部分って領域確保していないのにどこに保持されるのでしょうか? 例: char a[3] = "abc"; char *b = "def";
strcat(a,b);
結果:abcdef ← 本来3バイトしか確保していないのでわ?
以上、宜しくお願いします。
|