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