std::basic_string<CharT,Traits,Allocator>::c_str

来自cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
 
const CharT* c_str()const;
(C++11 起为 noexcept)
(C++20 起为 constexpr)

返回指向拥有数据等价于存储于字符串中的空终止字符数组的指针。

该指针满足范围 [c_str()c_str()+ size()] 有效,且其中的值对应存储于字符串的值,且在最后位置有个附加的空终止字符。

c_str() 获得的指针可能因下列行为失效:

通过 c_str() 写入字符数组是未定义行为。

c_str()data() 进行同一功能。

(C++11 起)

目录

[编辑]参数

(无)

[编辑]返回值

指向底层字符存储的指针。

对于 [0size()) 中的每个 ic_str()[i]== operator[](i)

(C++11 前)

对于 [0size()] 中的每个 ic_str()+ i ==std::addressof(operator[](i))

(C++11 起)

[编辑]复杂度

常数。

[编辑]注解

c_str() 获得的指针只能在字符串对象不含其他空字符时被当做指向空终止字符串的指针。

[编辑]示例

#include <algorithm>#include <cassert>#include <cstring>#include <string>   extern"C"void c_func(constchar* c_str){ printf("以 '%s' 调用 c_func\n", c_str);}   int main(){std::stringconst s("Emplary");constchar* p = s.c_str();assert(s.size()==std::strlen(p));assert(std::equal(s.begin(), s.end(), p));assert(std::equal(p, p + s.size(), s.begin()));assert('\0'==*(p + s.size()));   c_func(s.c_str());}

输出:

以 'Emplary' 调用 c_func

[编辑]参阅

(DR*)
访问首字符
(公开成员函数)[编辑]
(DR*)
访问最后的字符
(公开成员函数)[编辑]
返回指向字符串首字符的指针
(公开成员函数)[编辑]
close