strcat関数
学校の課題で
strcat関数と全く同じ働きをするmy_strcatを実装せよ
という課題がでています。
strcatは
char* strcat(char *dest, const char *str)
で表され、文字列 strを文字列 dest に合成して
合成された新しい文字列として dest を返します。
例えば、dest = Japan, str = Korea だったら,
関数処理後に、 dest = JapanKorea を戻り値とします。
*********************************************
my_strcat実装について
実装段階で一番の問題になるのが、文字列のサイズです。
とりあえず、私の書いたコードを示します↓
char* my_strcat(char *dest, const char *src)
{
int i=0;
int j=0;
while(*dest)
{
dest++;
i++;
}
while(*src)
{
*(dest+i) = src[0];
i++;
src++;
}
*(dest+j) = src[0]; //put null at the end of dest
return dest;
}
試しにdest=Japan,str=Koreaでやってみたのですが、動きませんでした。
原因はdest の文字サイズを無視した無理やりなりな実装だと考えます。
C言語では文字のサイズを一度宣言したら、変えられないと思うので、困っています。
どなたかアドバイスをいただけないでしょうか。
よろしくお願いします
お礼
なるほど。言われてみると納得できますね。 かなり助かりました!ありがとうございました。