[解決済み] C言語でchar配列をコピーする方法は?
2022-03-12 13:26:36
質問
C言語では、2つのchar配列があります。
char array1[18] = "abcdefg";
char array2[18];
の値をコピーする方法
array1
から
array2
? こうすればいいんですか?
array2 = array1
?
解決方法は?
を直接行うことはできません。
array2 = array1
なぜなら、この場合、配列のアドレスを操作することになるからです (
char *
)であって、その内部の値 (
char
).
概念的には、ソースのすべての文字を繰り返し処理することです (
配列1
) にコピーし、コピー先 (
配列2
). これを行うには、いくつかの方法があります。たとえば、単純なforループを書いたり、あるいは
memcpy
.
とはいえ、文字列の場合、推奨される方法は
strncpy
. などになるよくあるエラーを防ぐことができます。
バッファオーバーフロー
(の場合、特に危険です。
array1
は、キーボード、ネットワークなどのユーザー入力から満たされます)。このように
// Will copy 18 characters from array1 to array2
strncpy(array2, array1, 18);
ファルケン教授(@Prof. Falken)がコメントで述べているように。
strncpy
悪になりうる
. ターゲットバッファがソースバッファを含むのに十分な大きさであることを確認してください (
\0
を文字列の末尾に追加してください。)
関連
-
[解決済み] Valgrind が初期化されていないバイトについて警告する
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] scpを使ってリモートからローカルにフォルダをコピーするにはどうしたらいいですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] 配列を値でコピーする
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】JavaScriptで2つの配列を結合し、項目の重複を排除する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
g++が内部・外部コマンドソリューションとして認識されない、MinGWを初めて使うときの落とし穴
-
関数 'malloc' の暗黙の宣言に対する解決策
-
未定義の `__isoc99_sscanf' への参照
-
[解決済み] PTHREAD_MUTEX_INITIALIZER vs pthread_mutex_init ( &mutex, param )
-
[解決済み] mallocで文字列を確保する
-
[解決済み] c または c++ 用のシンプルな 2 次元クロスプラットフォームグラフィックスライブラリ?[クローズド]
-
[解決済み] char *とchar[]の違い [重複]
-
[解決済み] なぜmemsetではなくbzeroを使用するのですか?
-
[解決済み] "static const" vs "#define" vs "enum"
-
[解決済み] 2次元配列の反復処理において、ループの順序がパフォーマンスに影響するのはなぜですか?