首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

string和c_str()使用时的坑

这里主要说两个问题: 1、声明了一个string实例,使用c_str()进行赋值后,可以正常输出c_str()的值,但是直接输出string实例的实现,实际是空字符串 2、在第一个问题后,对string...实例进行字符串追加,然后对string和c_str()进行输出.原来对字符串变量被覆盖了....在string类中,c_str()的生命周期受到string类实例的影响.如果我们使用string对象实例进行赋值,字符串被复制到一个char*的成员变量,然后在调用c_str()的时候,会直接返回string...类中维护的char*成员的首地址.这样也就能保证了使用string和c_str()都能输出想要的字符值....其实,前面说的都是废话,用一句话就可以说明,就是:在使用string中的c_str()进行字符串赋值时,如果后面对string中的char*进行改变.那么c_str()中的值就不在可靠了.

71620
您找到你想要的搜索结果了吗?
是的
没有找到

题目1003:A+B ---c_str(),atoi()函数的使用;remove , erase函数的使用

list::iterator end = remove (coll.begin(), coll.end(),  3);  coll.erase (end, coll.end()); c_str...()的用法: 语法: const char *c_str(); c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同....这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。...,因为s对象被析构,其内容被处理 应该这样用: char c[20]; string s="1234"; strcpy(c,s.c_str()); 这样才不会出错,c_str()返回的是一个临时指针...,不能对其进行操作 再举个例子 c_str() 以 char* 形式传回 string 内含字符串 如果一个函数要求char*参数,可以使用c_str()方法: string s = "Hello

741100

【C++】STL 容器 - string 字符串操作 ③ ( string 字符串 与 char* 字符串转换 | string#c_str() 成员函数 | string#copy() 成员函数 )

文章目录 一、string 字符串 与 char* 字符串转换 1、string 与 char* 转换 2、string 转为 char* - c_str() 成员函数 3、string 转为 char...封装的 char* 字符指针取出来 ; char* 字符串 转为 string 字符串 , 就是 基于 char* 字符串 创建一个 string 字符串 ; 2、string 转为 char* - c_str...() 成员函数 在 C++ 语言中的 std::string 类中 , 封装了一个 c_str() 成员函数 , 用于返回一个指向字符串内容的常量字符指针 ; 将 string 转为 char* 类型..., 就需要调用 c_str() 成员函数 ; c_str() 函数的原型如下 : const char* c_str() const; c_str() 函数 返回一个指向字符串内容的常量字符指针 , 该指针可以用于与

33510
领券