std::string::c_str() 是否总是返回一个以 null 结尾的字符串
Does std::string::c_str() always return a null-terminated string?
可能的重复项:
字符串 c_str() 与数据()
我使用 strncpy(dest, src_string, 32)
将std::string
转换为 char[32]
,以使我的C++类使用遗留的 C 代码。但是 std::string 的 c_str()
方法是否总是返回一个以 null 结尾的字符串?
std::string 的 c_str() 方法是否总是返回以 null 结尾的字符串?
是的。
它的规格是:
返回:
p
指针,以便[0,size()]
中的每个i
p + i == &operator[](i)
。
请注意,为 i
指定的范围是封闭的,因此 size()
是有效的索引,指的是字符串末尾之后的字符。
operator[]
指定如下:
返回:如果
pos < size()
,则*(begin() + pos)
,否则引用值为charT()
的T
类型的对象的引用
在 std::string
的情况下,它是std::basic_string<char>
的别名,因此charT
是char
,值构造char
的值为零;因此std::string::c_str()
结果指向的字符数组以零终止。
c_str返回一个"C 字符串"。C 字符串始终以空字符结尾。这是 C 标准。
空终止字符串。
据此,答案是肯定的。
相关文章:
- 如何实现 Front() 方法以返回模板化双向链表C++的第一个元素?
- 模板化接口 - 创建一个泛型模板类以返回任何容器
- 如何优化代码以返回最接近给定整数的数字,但给定列表中不存在?
- 什么 /可以/ 你从一个函数返回. 并期望它在到达时还活着?
- 是否可以定义一个以向量<T>作为值的unordered_map?
- 存储另一个函数返回的布尔数组时遇到问题
- 如何通过另一个对象中的命令正确地从一个对象返回数据
- 有没有一种 STL 方法可以找到字符串的所有排列,给出一个以 C++ 为单位的大小?
- 我是 C++ 的新手,我试图调用 make 一个以 2 个类作为其参数的类构造函数
- 我怎么能有一个以2D数组为参数的函数,而数组有一个我想更改的参数/维度
- 创建一个始终返回零但优化器不知道的函数
- "如何使用C++将字符串的第一个和最后一个索引返回到向量中?
- C++日历(无法获取变量的值以返回到主函数)
- C++重载字符串 [] 运算符以返回字符串和
- std::string::c_str() 是否总是返回一个以 null 结尾的字符串
- 设计一个以统一方式返回多个接口的类
- 创建一个函数以返回指定范围内的随机数
- ofstream-保存一个函数以返回一个txt
- 如何将一个以特征向量为参数的函数传递给另一个类/函数并返回一个特征向量
- 为什么定义一个以返回类型作为其类的方法不会给我一个"不完整的类型"错误