Метод data
Метод data возвращает указатель на внутренний массив символов (C-строку), хранящийся внутри объекта string. Метод не принимает параметров. Возвращаемый указатель имеет тип const char*, поэтому изменять символы через него нельзя. Строка при этом не изменяется. Указатель остаётся действительным до тех пор, пока строка не будет изменена или уничтожена.
Синтаксис
str.data()
Пример
Давайте получим указатель на внутренний массив строки и выведем его как C-строку:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
const char* ptr = str.data();
cout << ptr << endl;
return 0;
}
Результат выполнения кода:
"abcde"
Пример
Давайте выведем строку посимвольно, обращаясь к её внутреннему массиву через указатель, полученный методом data:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "12345";
const char* ptr = str.data();
for (int i = 0; i < str.size(); i++) {
cout << ptr[i] << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 3 4 5