C言語のstrcpy関数の使い方は?

C言語の文字列処理関数strcpyの原型は次のとおり

char* strcpy(char* dest, const char* src);

この関数は、ソース文字列(src)を宛先文字列(dest)にコピーするために使用されます。関数は宛先文字列へのポインタを返します。

ストリングのコピーを行うstrcpyを使う際には気をつけるべき点がいくつかあります。

  1. ターゲット文字列には、ソース文字列の内容を格納する十分な大きさが必要です。それ以外の場合はメモリー越界の問題を引き起こす可能性があります。
  2. 文字列の終わりには、文字列の終了を表す空文字(’\0’)が自動的に追加されます。
  3. ターゲット文字列とソース文字列は、重複してはいけません。つまり、2 つの文字列が同じメモリ領域を指していることはできません。そうでないと結果は未定義になります。

以下は、strcpy関数の使用例です。

#include <stdio.h>
#include <string.h>
int main() {
char src[] = "Hello, World!";
char dest[20];
strcpy(dest, src);  // 复制src到dest
printf("目标字符串:%s\n", dest);
return 0;
}

上記の例では、元の文字列は “Hello, World!” で、ターゲット文字列は20文字の配列です。strcpy関数により、元の文字列がターゲット文字列にコピーされ、printf関数によりターゲット文字列の内容が出力されます。

実行結果は次のようになります。対象文字列: Hello, World!

strcpy関数を使用する際は、目的文字列の長さが元文字列の内容を収容するのに十分であることを確認する必要があります。さもないと、目的文字列のオーバーフローが発生する可能性があります。

bannerAds