В недавнем вопросе я узнал, что есть ситуации, когда вам просто нужно пройти char*
вместо std::string
. Мне действительно нравится string
, и для ситуаций, когда мне просто нужно передать неизменяемую строку, он прекрасно работает с .c_str()
. На мой взгляд, это хорошая идея - воспользоваться строковым классом для простоты его манипулирования. Тем не менее, для функций, которые требуют ввода, я в конечном итоге сделать что-то вроде этого:
std::string str;
char* cstr = new char[500]; // I figure dynamic allocation is a good idea just
getstr(cstr); // in case I want the user to input the limit or
str = cstr; // something. Not sure if it matters.
delete[] cstr;
printw(str.c_str());
Очевидно, это не так просто. Теперь я довольно новичок в C ++, поэтому я не могу видеть лес за деревьями. В такой ситуации, когда каждый вход должен быть преобразован в строку C и обратно, чтобы воспользоваться полезными методами string
, это просто лучшая идея, чтобы разобраться и привыкнуть к стилю C манипуляции со строками? Не слишком ли глупы такие постоянные преобразования туда-сюда?