const char * c_str()const;获取等效的C字符串生成一个以空终止的字符序列(c-string),其内容与字符串对象相同,并将其作为指向字符数组的指针返回。会自动附加一个终止的空字符。const char * data()const;获取字符串数据返回指向与字符串内容相同的字符数组的指针。
c_str()和data():生成一个const char*指针,指向一个临时数组。 有解释说c_str必然带‘\0’,至于data要不要带’\0’,这个标准没说。 string str ="012345"; cout<<"string.data() addr is ";printf("%p\n",str.data());//地址相同cout<<"string.c_str() addr is ";printf("%p\n\n",str....
c_str()和data():生成一个const char*指针,指向一个临时数组。 c_str()函数返回一个指向正规C字符串的指针,内容与string串相同。 C++中c_str()主要用法就是为了与C语言兼容,在C语言中没有string类型,故必须通过string的对象的成员函数c_str()把string对象转换成C中的字符串样式。 c_str()以char*形式传回...
data():您可能需要字符串中的信息作为缓冲区数据,甚至是非const.您可能需要也可能不需要修改数据,只要它不涉及更改字符串的长度即可. 我认为空终止是一个红色的鲱鱼.对于空终止,`c_str`和`data`都是绝对等效的. (3认同) @KerrekSB这不是关于是否存在的空终止.从某种意义上说,您是否需要"以null结尾的字符串...
string中c_str()、data()、copy(p,n)函数的用法,标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。1.c_str():生成一个constchar*指针,指向以空字符终止的数组。注:①这个数组的数据是临时的,当有一个改变这些数据的
std::string的⽅法c_str()和data()有什么区别1、从C++标准上的解释来看,只有⼀点区别:c_str() 返回⼀个指向正规C字符串的指针常量,该指针保证指向⼀个 size() + 1 长度的空间,⽽且最后⼀个字符肯定是 \0 ;⽽ data() 返回的指针则保证指向⼀个size()长度的空间,不保证有没有null...
string::c_str()、string::c_data()的区别: const value_type *c_str( ) const; const value_type *data( ) const; data只是返回原始数据序列,没有保证会用traits::eos(),或者说'\0'来作字符串结束. 当然,可能多数实现都这样做了。 c_str是标准的做法,返回的char*, 一定指向一个合法的用'\0'终止...
c++ string c_str() 和data()区别,看下面的英文解释:constchar*c_str()const;GetCstringequivalentGeneratesanull-terminatedsequenceofcharacters(c-string)withthesamecontentasthestringobjectandreturnsitasapointertoanarrayofcharacters.Aterminatingnullcharacteri
深入探讨C++中std::string类的成员函数c_str()和data()的区别,需要从历史角度出发。在过去,string类设计时并不强制内部存储以'\0'结尾的字符串,这与现代语言的设计趋势相悖。为此,在C++11标准发布之前,仅通过调用string::c_str()函数才能获取到以'\0'结尾的字符串。然而,C++11标准进行了改进...
摘要:C/C++数组、指针、引用区别 resize和reserve函数原理 c_str和data函数区别 一、C/C++数组、指针、引用区别 1、数组和指针都用来指向内存空间,数组相当于指针常量; 2、引用相当于指针常量,但是引用使用起来更方便; 3、代码示例:array_and_pointer.cpp ...