Какой самый эффективный способ преобразовать строку в массив / значение char, на который может указывать указатель char?

Если у меня есть строка:

std::string Pooptacular = "Pooptacular"

и я хочу преобразовать его в массив символов, у меня есть несколько вариантов:

char* poopCArr = Pooptacular.c_str();

или я могу сделать что-нибудь с memcpy или strcpy и тому подобное.

Я хочу знать, какой из этих методов самый быстрый или самый эффективный. Другими словами, какой метод мне следует использовать, если бы я делал это сотни тысяч раз за один прогон программы?

1 ответ

Решение

Если вам нужен только доступный только для чтения указатель на данные, используйте c_str, Это ничего не конвертирует. Это просто дает вам доступ к буферу string уже выделил. Конечно, вы должны скопировать его в новый буфер, если вы хотите изменить его, и если вы это сделаете, не ожидайте, что ваши изменения будут отражены в вашем оригинале string объект.

Другие вопросы по тегам