strcpy と lstrcpy の違い

スポンサード リンク

このページでは C言語の関数である strcpy と lstrcpy の違いに関して比較表で説明します。 lstrcpy はマイクロソフト独自の関数です。見てわかる通り、アドレスの型が異なります。。lstrcpyのほうが文字コードを意識した関数となっています。

スポンサード リンク

(注意)分かりやすく簡単に記載しており、一部の環境や分野では記載内容が異なる可能性があります。あくまでも参考程度でお読みください。

比較表

比較は以下の表の通りとなります。

説明strcpylstrcpy
定義char *strcpy(
char *strDestination,
const char *strSource
);
LPTSTR lstrcpy(
LPTSTR lpString1,
LPCTSTR lpString2
);
C Run Time Library
WIN 32 API
引数8 ビット char 型として動作する。

マルチバイト、UNICODEは意識しないのでプログラマー側が考慮する必要がある。(特に日本語などのマルチバイト文字)
考慮漏れするとマルチバイト、ワイド文字が途中で区切られて、文字化けの原因となる。

ワイド文字(UNICODEが定義)の場合はlstrcpyW

マルチバイト文字(UNICODEが未定義)の場合はlstrcpyA

コピー処理の場合、それぞれが考慮されてコピーされる。

どのようなときコピーする文字を8ビット文字(1文字1バイトのアルファベットや数字からなる文字)として扱う場合。
コピーする文字をマルチバイト、ワイド文字と意識してコピーする場合。








【注意】本ページは著作権で保護されています。内容は何人も補償しません。時間的あるいは金銭的損失等、一切保証しません。

理解しやすく記載されており、一部不正確な記載がある可能性があります。ご自身の責任で参考にしてください。