string,char*,char[]转换

string,char*,char[]转换
string不一定是以null(‘\0’)结束,而char*是
1. string 转const char*
string s1=”abcdef”;
const char *k=s1.c_str();
或者
const char *p=s1.data();
printf(“%s%s”,k,p);
注意:不能去掉const,否则编译不过
string转char*
string s1=”abcdef”;
int len=s1.length();
char * data=(char* )malloc((len+1)*sizeof(char));
s1.copy(data,len,0);
string类的成员函数:
int copy(char* s,int n,int pos) const;
把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回拷贝的数目。
const char* data() const;
返回一个非null终止的c字符数组
const char* c_str() const;
返回一个以null终止的c字符串
string类的构造函数
string(const char* s);
string (int n, char c);

2.char *和char[]转string,都可以直接赋值
char* c=”abc”;
string str=c;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值