gpt4 book ai didi

c++ - std::string str(array.begin(), array.end()) 是否自行添加空字符?

转载 作者:行者123 更新时间:2023-12-04 11:51:01 25 4
gpt4 key购买 nike

我对 C++ 很陌生,我想知道 std::string str(array.begin(), array.end())在字符串的末尾单独添加一个空字符?我查了一下这个 reference但我想不通。我很感激你的回答!
编辑:
我正在使用 C++11 并且我有一个 boost::array<u_int8_t>大小不详。我的目标是之后用 str.c_str() 打印它因为 %s期待 char* .

str = std::string(arr.begin(),arr.end());
ROS_INFO("Got response: \n %s", str.c_str());

最佳答案

C++ 标准规定 c_str()返回一个以空字符结尾的字符串(字符串的内容后跟一个 '\0' )。根据 C++ 标准版本,您可能会也可能不会保证 str[str.size()]还给你一个 '\0' .
这是 C++ 标准指定的唯一内容。是否'\0'最初是由它的构造函数添加的,或者不是,包括这个特定的构造函数:这是未指定的。
但是,因为您可以保证获得最重要的 '\0'当你去寻找它时,这是一个有争议的问题。它会在那里。

关于c++ - std::string str(array.begin(), array.end()) 是否自行添加空字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67936870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com