C++中的c_str()函数用法

语法:
const char *c_str();
c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同.
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针
比如:最好不要这样:
char* c;
string s="1234";
c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理,同时,编译器也将报错——将一个const char *赋与一个char *。

应该这样用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作

再举个例子
c_str() 以 char* 形式传回 string 内含字符串
如果一个函数要求char*参数,可以使用c_str()方法:
string s = "Hello World!";
printf("%s", s.c_str()); //输出 "Hello World!"

转自:http://blog.csdn.net/nancy_m/article/details/7583550

作者:wangduo

出处:http://www.cnblogs.com/wangduo/

本博客中未标明转载的文章归作者wangduo和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

时间: 2024-08-06 07:51:04

C++中的c_str()函数用法的相关文章

VC中常见API函数用法(经验版)

1.设置对话框为无边框方法 ModifyStyle(WS_CAPTION | WS_THICKFRAME, 0, SWP_FRAMECHANGED); 2.设置控件灰色与不灰色 void CMthread1Dlg::OnStop() { // TODO: Add your control notification handler code here m_bRun = FALSE; GetDlgItem(IDC_START)->EnableWindow(TRUE); GetDlgItem(IDC_

Numpy中的tile函数用法

0.引言 在看机器学习实战这本书时,遇到numpy.tile(A,B)函数,开始没太明白这个函数用法,网上帖子也不太详细,经过一番试验后基本搞明白基本用法,分享给大家. 1.函数定义 tile函数是模板numpy.lib.shape_base中的函数. 函数形式:tile(A,rep) 功能:重复A的各个维度 参数类型: - A: Array类的都可以 - rep:A沿着各个维度重复的次数,从低维向高维重复 -A的类型众多,几乎所有类型都可以:array, list, tuple, dict,

Oracle中的时间函数用法(to_date、to_char) (总结)

一.24小时的形式显示出来要用HH24 select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual; select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; 二.to_date() function 1.日期格式参数含义说明 D一周中的星期几 DAY天的名字,使用空格填充到9个字符 DD月中的第几天 DDD年中的第几天 DY天的简写名 IW ISO标准

python中的enumerate()函数用法

enumerate函数用于遍历序列中的元素以及它们的下标,可以非常方便的遍历元素. 比如我在往excel中写数据时就用到了这个函数: data = [] data.append(('预约码', '车牌号码', '进校时间段', '出校时间段', '进校校区',)) for i in car_orders: data.append((i.order_number, i.car_number, i.during_in_time, i.during_out_time, i.in_school)) fo

Android Studio中设置提示函数用法

Eclipse有一个很好的功能,就是当你代码调用某个android API时,鼠标移到对应的函数或者方法上,就会自动有一个悬浮窗提示该函数的说明(所包含的参数含义,该方法功能).迁移到Android Studio后,这个鼠标移到函数上,你发现悬浮窗不出来了.那么在Android Studio到底如何查看函数的说明呢. 在Android Studio中默认情况下是不会和Eclipse那样,鼠标移动到一个类或者方法或者变量上面,就会弹出悬浮框,显示相关的文档的.不过,Android Studio可以

sql server 2005中的分区函数用法(partition by 字段)

分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系统中取出每个学科前3名的学生.这种查询在SQL Server 2005之前,写起来很繁琐,需要用到临时表关联查询才能取到.SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单. create database StudentDBgo use StudentDBgo create table Student  --学生成绩表( id int,  --主键

javvscript中的eval()函数用法

<script  type="text/javascript" > //eval()求值函数:1.用来计算字符串例如:eval('1+3')      alert(eval("1+6"));//输出7    //2.用来将json字符串转换成json对象    var json ='{a:"hello",b:3}';    alert(eval("("+json+")"));//输出 [obje

Python中的range函数用法

函数原型:range(start, end, scan): 参数含义:start:计数从start开始.默认是从0开始.例如range(5)等价于range(0, 5); end:技术到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 scan:每次跳跃的间距,默认为1.例如:range(0, 5) 等价于 range(0, 5, 1) >>> range(5)range(0, 5)=0,1,2,3,4 range(0,5,2)=0,2,4

sql server中的charindex函数用法解析(在一段字符中搜索字符或者字符串-----返回expression1在expression2出现的位置;反之,返回0)

https://blog.csdn.net/xinghuo0007/article/details/70651358 知识点一:charindex()语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 解析: expression1 必需 ---要查找的子字符串 expression2 必需 ---父字符串 start_location 可选 ---指定从父字符串开始查找的位置,默认位置从1开始 知识点二: charin