Поделиться через


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

См. также

Ссылки

Структура char_traits