Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

【C言語・C++入門】strcpy()関数の使い方を徹底解説

strcpy() 関数は標準ライブラリ関数の一つで、ある文字列を別の文字列へコピーするために使用されます。C言語では string.h ヘッダーファイル、C++では cstring ヘッダーファイルに宣言されており、戻り値としてコピー先(dest)へのポインタを返します。

strcpy() の構文

C言語における strcpy() の構文は以下の通りです。

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

strcpy() のポイント

  • コピー元の文字列全体をコピー先の文字列へコピーします。末尾への追加(連結)ではなく、既存の内容を丸ごと上書き(置き換え)する点に注意してください。

  • コピー元(src)の文字列は変更されません。

  • コピー先のバッファがコピー元より小さい場合、バッファオーバーフローが発生する恐れがあるため、十分なサイズを確保しておく必要があります。

使用例

ここでは、C言語での strcpy() の基本的な使用例を紹介します。

#include <stdio.h>
#include <string.h>
int main() {
    char s1[] = "Hello world!";
    char s2[] = "Welcome";
    printf("String s1 before: %s\n", s1);
    strcpy(s1, s2);
    printf("String s1 after: %s\n", s1);
    printf("String s2 : %s", s2);
    return 0;
}

実行結果

String s1 before: Hello world!
String s1 after: Welcome
String s2 : Welcome

この例では、strcpy(s1, s2) を呼び出すことで、s1 の内容「Hello world!」が s2 の内容「Welcome」で完全に置き換えられていることが確認できます。一方、コピー元である s2 は呼び出し前後で変化していません。

  1. C/C++で文字列を反転する方法をサンプルコード付きで解説

    C言語で文字列を反転(逆順に並べ替え)する方法を、実際のコード例とともにわかりやすく解説します。サンプルコード#include<stdio.h> #include<string.h> int main() {     char s[50], t;     int i = 0, j = 0;     printf(\nEnter the string to reverse :);     gets(s); &

  2. C++で文字列をトークン化(分割)する2つの方法を解説

    文字列のトークン化(分割)とは、1つの文字列を区切り文字(スペースやカンマなど)を基準に、複数の部分文字列へ分割する処理のことです。C++では、標準ライブラリだけでもいくつかの方法で実現できます。本記事では、代表的な2つの方法をサンプルコード付きで紹介します。方法1:stringstreamを使って空白で分割する1つ目の方法は、stringstreamを使ってスペースで区切られた単語を順に読み取る方法です。この方法はやや制限がありますが、適切なチェックを加えれば十分に目的を果たすことができます。サンプルコード#include <vector> #include <string