string的c_str和data()的运用,转为const char *

c_str():生成一个const char*指针,指向以空字符终止的数组。

data():与c_str()类似,但是返回的数组不以空字符终止。

Copy在vs2013里用会出错,有会的人,请写个例子私信我,相互学习学习,先谢谢了;

 

C_str();

这个数组的数据是临时的,string被重新赋值后,p值就会被改变:

         stringstr2 = "和2";
         constchar * p = str2.c_str();
         str2= "hello";
         cout<< p << endl;

如果要保存c_str的字符串,先要保存起来;

         stringstr2 = "和2";
         constchar * p = str2.c_str();
         char* pstr = (char*)malloc((str2.length() + 1)*sizeof(char));
         strcpy(pstr,p);
         str2= "hello";
         cout<< pstr << endl;
         free(pstr);

c_str()返回一个客户程序可读不可改的指向字符数组的指针,不需要手动释放或删除这个指针。

 

String输出 和 转换为 const char * 类型:

1..data();

         stringstr = "和";
         constchar * p = str.data();
         constchar**  pstr = &p;
         cout<< *pstr << endl;

2..c_str();

         stringstr2 = "和2";
         constchar * p = str2.c_str();
         cout<< p << endl;

char * 转为string;

         strings;
         char*p = "asdasd";
         s= p;
         cout<< s;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值