Какой самый эффективный способ преобразовать строку в массив / значение char, на который может указывать указатель char?
Если у меня есть строка:
std::string Pooptacular = "Pooptacular"
и я хочу преобразовать его в массив символов, у меня есть несколько вариантов:
char* poopCArr = Pooptacular.c_str();
или я могу сделать что-нибудь с memcpy или strcpy и тому подобное.
Я хочу знать, какой из этих методов самый быстрый или самый эффективный. Другими словами, какой метод мне следует использовать, если бы я делал это сотни тысяч раз за один прогон программы?
1 ответ
Решение
Если вам нужен только доступный только для чтения указатель на данные, используйте c_str
, Это ничего не конвертирует. Это просто дает вам доступ к буферу string
уже выделил. Конечно, вы должны скопировать его в новый буфер, если вы хотите изменить его, и если вы это сделаете, не ожидайте, что ваши изменения будут отражены в вашем оригинале string
объект.