Метод copy
Метод copy копирует указанное количество символов из строки в заранее подготовленный массив символов. Первым параметром метод принимает указатель на массив, куда будет производиться копирование, вторым - количество копируемых символов, а третьим - позицию в строке, с которой начинать копирование. Метод возвращает количество фактически скопированных символов. Обратите внимание, что метод не добавляет завершающий нулевой символ в конец массива, поэтому массив нужно подготовить самостоятельно.
Синтаксис
str.copy(dest, count, [pos])
Пример
Давайте скопируем 3 символа из строки "abcde" начиная с позиции 1 в массив символов:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
char res[10] = {0};
size_t n = str.copy(res, 3, 1);
res[n] = '\0';
cout << res << endl;
return 0;
}
Результат выполнения кода:
"bcd"
Пример
Давайте скопируем всю строку целиком в массив символов, начиная с позиции 0:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "12345";
char res[10] = {0};
size_t n = str.copy(res, str.length(), 0);
res[n] = '\0';
cout << res << endl;
return 0;
}
Результат выполнения кода:
12345