C++ の strncpy() 関数とは
strncpy() 関数は、ある文字列から別の文字列に一定量の文字をコピーするために使用される組み込みの C++ 関数です。この関数には、文字を保持する宛先文字列、文字を提供するソース文字列、およびコピーする文字数の 3 つのパラメーターが必要です。ソース文字列が指定された文字数よりも少ない場合、宛先文字列は残りの長さまでヌル文字で埋められます。
strncpy() 関数のプロトタイプを以下に示します。
チャー * strncpy ( チャー * 手 定数 チャー * src、 size_t カウント ) ;
C++ strncpy() のパラメータは何ですか
のすべてのパラメータ strncpy() 機能を以下に説明します。
- 手: コンテンツの格納先配列へのポインタ
- ソース: コンテンツのソース配列へのポインター
- カウント: ソースから宛先にコピーできる最大文字数。
strncpy() 関数は C++ でどのように機能しますか?
strncpy() 関数は 3 つの引数を受け入れます。 宛先、ソース、 と カウント .かどうかをチェックします。 ソース 文字列は null で終了し、そうであれば、指定された文字数を ソース への文字列 始める 弦。カウントが ソース string、最初の count 文字が転送されました 始める 文字列であり、null で終了していません。カウントが ソース 、からのすべての文字 ソース にコピーされます 始める 、すべてのカウント文字が書き込まれるまで、追加の終端ヌル文字が含まれています。
与えられた例は、C++ の動作を示しています strncpy() 関数。
#include
#include
使用して 名前空間 標準 ;
整数 主要 ( )
{
チャー src_str [ ] = 'strncpy のコードを書いています' ;
チャー dest_str [ 60 ] ;
strncpy ( dest_str、src_str、 ストレン ( src_str ) ) ;
カウト << dest_str << ' \n ' ;
戻る 0 ;
}
このプログラムでは、
の 出力 プログラムの以下に示すことができます。
C++ で strncpy() を使用する際の問題は何ですか?
- 宛先配列に null 文字がない場合、または文字列が null で終了していない場合、プログラムまたはコードは遅かれ早かれ問題に遭遇する可能性があります。 C++ の null 以外で終了する文字列は、プログラムの実行中にいつでも壊れる可能性がある危険なコードになっています。プログラムでセグメンテーション違反が発生する可能性があります。結果として、 strncpy() 宛先文字列が常に null で終了することを保証しないため、作成中のプログラムにとって危険なコードになります。
- この関数はオーバーフローのチェックに失敗するため、ソース文字列をソースより小さいサイズの宛先にコピーしようとすると、エラーが発生し、未定義の動作が発生します。
結論
ある文字列から別の文字列にデータをコピーするには、次を使用します strncpy() の組み込み関数である C++ で