在最近的一个问题中,我了解到在某些情况下您只需要通过 achar*
而不是 a 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
's 的有用方法,这只是一个更好的主意并习惯于 C 风格的字符串操作吗?这种不断的来回转换是否太愚蠢而无法处理?