data和c_str data()和c_str()都是用来获取底层字符串的首地址的,但是在C++98中规定的是data()返回的字符串不保证有结尾\0,但是c_str()返回的字符串保证有结尾\0,也就是C++98标准在设计字符串的时候是想抛弃C风格的字符串语法的,但是在实际应用中,往往需要 ...
从C 标准上的解释来看,只有一点区别: c str 返回一个指向正规C字符串的指针常量,该指针保证指向一个 size 长度的空间,而且最后一个字符肯定是 而 data 返回的指针则保证指向一个size 长度的空间,不保证有没有null terminate,可能有,可能没有,看库的实现了。 有的STL的实现中,二者是完全一样的,如vs . ,两个函数的源码中,data 函数内部调用的是c str ...
2018-04-20 17:40 0 8329 推荐指数:
data和c_str data()和c_str()都是用来获取底层字符串的首地址的,但是在C++98中规定的是data()返回的字符串不保证有结尾\0,但是c_str()返回的字符串保证有结尾\0,也就是C++98标准在设计字符串的时候是想抛弃C风格的字符串语法的,但是在实际应用中,往往需要 ...
看下面的英文解释: const char* c_str ( ) const;Get C string equivalentGenerates a null-terminated sequence of characters (c-string) with the same content ...
看下面的英文解释: const char* c_str ( ) const;Get C string equivalentGenerates a null-terminated sequence of characters (c-string) with the same content ...
先看一段代码和它的运行结果: 看到结果了么这个运行的结果和我们理解的是不会有差距.对于经验丰富的开发者可能会微微一笑,但是对于一个刚刚学习的人就开始疑惑了.这里主要说两个问题: 1、声明了一个string实例,使用c_str()进行赋值后,可以正常输出c_str()的值 ...
c_str函数的返回值是const char*的,不能直接赋值给char*。 c++语言提供了两种字符串实现,其中较原始的一种只是字符串的 c语言 实现。与C语言的其他部分一样,它在c++的所有实现中可用,我们将这种实现提供的字符串对象,归为c-串,每个c-串char*类型 ...
标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。 1. c_str():生成一个const char*指针,指向以空字符终止的数组。 注: ①这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用 ...
::string::c_str c_str()函数返回一个指向正规C字符串的指针常量, 内容与 ...
这个问题找了很多没有找到满意的答案。仔细看了一下,是使用了c_str的问题。 我直接把使用string.c_str的地方使用char*代替即解决问题。 ...