char_traits::move
このシーケンスに重複するごとにシーケンス内の指定された文字数をコピーします。
このメソッドは、呼び出し元に渡された値が正しいことを確認するために依存するため、場合によっては安全ではありません。代わりに、char_traits::_Move_s を使用することを検討してください。
static char_type *move(
char_type* _To,
const char_type* _From,
size_t _Num
);
パラメーター
_To
文字シーケンスのコピーを受信する対象となる文字列または文字配列の先頭の要素。_From
コピー元の文字列または文字配列の先頭の要素。_Num
元の文字列からコピーする要素の数。
戻り値
文字シーケンスのコピーを受信する対象となる文字列または文字配列にコピー _To 最初の要素。
解説
コピー元とコピー先が重複することがあります。
使用例
// char_traits_move.cpp
// compile with: /EHsc /W3
#include <string>
#include <iostream>
int main( )
{
using namespace std;
char_traits<char>::char_type sFrom1[] = "abcd-1234-abcd";
char_traits<char>::char_type sTo1[] = "ABCD-1234";
char_traits<char>::char_type* result1;
cout << "The source string sFrom1 is: " << sFrom1 << endl;
cout << "The destination stringsTo1 is: " << sTo1 << endl;
// Note: char_traits::move is potentially unsafe, consider
// using char_traits::_Move_s instead.
result1 = char_traits<char>::move ( sTo1 , sFrom1 , 4 ); // C4996
cout << "The result1 = move ( sTo1 , sFrom1 , 4 ) is: "
<< result1 << endl << endl;
// When source and destination overlap
char_traits<char>::char_type sToFrom2[] = "abcd-1234-ABCD";
char_traits<char>::char_type* result2;
cout << "The source/destination string sToFrom2 is: "
<< sToFrom2 << endl;
const char* findc = char_traits<char>::find ( sToFrom2 , 4 , 'c' );
// Note: char_traits::move is potentially unsafe, consider
// using char_traits::_Move_s instead.
result2 = char_traits<char>::move ( sToFrom2 , findc , 8 ); // C4996
cout << "The result2 = move ( sToFrom2 , findc , 8 ) is: "
<< result2 << endl;
}
必要条件
ヘッダー: <string>
名前空間: std