我读过几篇文章,其中提到c_str()和data()(在STL和其他实现中)的区别在于c_str()始终以空字符结尾,而data()则不是。 就我在实际实现中看到的情况,它们要么相同,要么data()调用c_str()。 我错过了什么?在哪些场景中使用哪一个更正确?
在C++11之后,我认为c_str()和data()是等效的。 。 C++17为后者引入了一个重载版本,返回非常量指针 (参考,我不确定它是否完全更新了C++17):const CharT* data() const; (1) CharT* data(); ...
为什么我会想要调用 std::string::data() 而不是 std::string::c_str()?肯定标准中有一些方法的疯狂。
我正在尝试使用#![no_std]和extern crate rlibc编写新的初始化系统,并使用asm调用系统调用,目前尝试避免分配内存。因此,我可以使用的工具范围受到限制。 我需要调用execve系统调用,它需要一个char **argv和一个char **envp。我可以使用零作为字节...
我已阅读了关于 std::string::c_str 的各种描述,包括多年/几十年来在SO上提出的问题。 我喜欢这个说明的清晰度: 返回一个指针,该指针指向一个数组,该数组包含表示字符串对象的当前值的以 null 结尾的字符序列(即 C 字符串)。该数组包括与组成字符串对象值相同的字符序列...
这是我在网上找到的一个小型库: const char* GetHandStateBrief(const PostFlopState* state) { static std::ostringstream out; // ... rest of the function .....