[解決済み] wcsncpyとwcscpy_sの違いは何ですか?
2022-03-01 04:05:53
質問
を使用するのとでは、実用上何か違いがあるのでしょうか?
wcscpy_s
と
wcsncpy
? 違いは、パラメータと戻り値の順番だけのようです。
errno_t wcscpy_s(wchar_t *strDestination,
size_t numberOfElements,
const wchar_t *strSource);
wchar_t *wcsncpy(wchar_t *strDest,
const wchar_t *strSource,
size_t count );
また、実用的な違いがないのであれば、なぜマイクロソフトは
wcscpy_s
は、Visual Studio では
wcsncpy
はすでに利用可能で、標準的な機能だったのですか?
を置き換えることは可能ですか?
wcscpy_s
から
wcsncpy
Visual Studioからgccに移植するとき?
どのように解決するのですか?
この2つの関数の動作は同じではありません。
実行に成功すると、宛先の文字列は常にヌル文字で終端されます。
の仕様から
wcsncpy
(C11 7.29.4.2.2/1-3):
#include <wchar.h> wchar_t *wcsncpy(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);
は
wcsncpy
を超えない範囲でコピーします。n
ワイド文字(ヌル文字に続く文字 ワイド文字はコピーされません)。s2
で指される配列にs1
.が指す配列が
s2
よりも短いワイド文字列です。n
で指定した配列のコピーに null ワイド文字が追加されます。s1
まで、またはn
幅の広い文字がすべて書き込まれました
と脚注(#346)があります。
したがって、もし最初の
n
で指される配列のワイド文字。s2
の場合、結果はヌル文字で終端されません。
なお
strncpy
と
wcsncpy
は、ヌル文字で終端する文字列と一緒に使うようには設計されていません。 これらは、ヌルパディングされた固定幅の文字列で使用するために設計されています。
関連
-
[解決済み】コンパイラの警告 - 真理値として使用される代入の周囲に括弧を付けることを推奨する
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] mallocの結果はキャストするのですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] C++でextern "C "を使用した場合の効果は?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] ++iとi++の違いは何ですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】定義と宣言の違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Valgrind が "Invalid write of size 8" で文句を言う。
-
[解決済み] c - 初期化がキャストなしでポインタから整数を作る、さらに2つのコンパイラーエラー
-
[解決済み】strcmpが機能しない
-
[解決済み】警告:互換性のないポインタ型からの代入
-
[解決済み】GCC Cコードで静的宣言が非静的宣言に続くことを解決するには?
-
[解決済み】LEALアセンブリ命令は何をするのですか?
-
[解決済み】C言語でint64_t型を表示する方法
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み] char pointers: 'char*' から 'char' への無効な変換?
-
[解決済み] エラー: `itoa` はこのスコープで宣言されていません。