c++中c_str()用法,越详细越好。

 我来答
刺任芹O
2022-11-16 · TA获得超过6.2万个赞
知道顶级答主
回答量:38.7万
采纳率:99%
帮助的人:8840万
展开全部

应该这样用:

char c[20]; 

string s="1234"; 

strcpy(c,s.c_str()); 

这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作。

语法: const char *c_str();

c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.,这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。

注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针。

扩展资料:

关于上述用法种最好不要这样用

const char* c;  

std::string s = "1234";  

c = s.c_str();  

std::cout << c << std::endl; //输出:1234  

s = "abcd";  

std::cout << c << std::endl; //输出:abcd  

上面如果继续用c指针的话,导致的错误将是不可想象的,就如:1234变为abcd。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式