我使用
可能重复:
string c_str() vs. data()
strncpy(dest, src_string, 32)
将std::string
转换为char[32]
,以使我的C++类与传统的C代码配合使用。但是,c_str()
方法是否总是返回以空字符结尾的字符串?可能重复:
string c_str() vs. data()
strncpy
太小,可能不会将其复制过去。比如,如果您的空终止符在第40个索引处,而您只复制了32个字符。这样就不再以空终止符结尾了。 - im so confusedc_str()
返回 C 字符串,由 C 标准定义为以 null 结尾。我认为这不是一个真正的问题,因为我们在这里要做的就是解释什么是“C 字符串”,这并不适合在这个网站上讨论。 - Griwes