永发信息网

const char*为char*赋值,最近在写UNIX网络编程作业时遇到这个问题~~

答案:3  悬赏:40  手机版
解决时间 2021-02-03 15:29
const char *p = "abcdef";
char *q = p;
这样的话会报错。
我用的一个for循环来,一个一个的把值复制过去的。
有没有什么更方便的办法?

同学们可能没理解我的意思,说具体一点:
string a("abcdef");
char *b = a.c_str(); 这里会报错,c_str()返回的是const char*,所以不能赋给char *的b,而某个函数要求使用 char*作为参数,我从自己设计的函数中返回的是 string 类型。
简单一句话:怎么样从string类型转换成char*类型,而不是const char*!
这是我的代码片断:
char result[converstr.length()];
const char *tmpre = converstr.c_str();

for(int j = 0; j < converstr.length(); j++)
{
result[j] = tmpre[j];
}

if((nwrite = writen(connectSfd, result, converstr.length())) < 0)
{
perror("Server write Error!");
exit(-1);
}
最佳答案
之所以叫const是不能改变的,你把变量q指向一个内容不可变的地址当然会报错,只能进行拷贝,可以用strcmp函数
char *c = (char*)malloc(sizeof(char) * (strlen(s) + 1));
strcmp(c, s);
全部回答
你好! const char *p = "adbddf"; p = "dfers"; // 不报错 p[0] = '3'; // 报错 *p = '4'; // 报错 const char *p只是p指向的东西不可变,但是p的值可以变。 如果你不对q指向的东西进行改变,把q申明成const char *q就可以 希望对你有所帮助,望采纳。
楼上的应该是用strcpy函数吧 strcmp是比较
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
噭謈的意思是什么啊?知道的请说下!
连云港博胜机械制造有限公司地址在什么地方,
【阶乘】3的阶乘是多少啊?
止回阀和闸阀哪个贵?
创新SB0060声卡我听什么都带混响,别人听我说
d7烫染工作室地址在什么地方,我要处理点事
鞋类设计专业的研究生哪些学校有
五月花宾馆地址在哪,我要去那里办事
发村的意思是什么啊?知道的请说下!
魅族MX4pro屏幕上方出现黑线,这样情况免费保
快递可以 到永川 来苏镇吗
大一寸 白底彩色医保卡电子相片1张什么意思
桂林是我国最具代表性的旅游城市之一。图1、
吞平我想知道这个在什么地方
干燥的头发如何护理和保养
推荐资讯
诺基亚 N9 QQ如何使用?诺基亚n9qq怎么更新?
非诚勿扰 英文翻译下
我1.65 130斤该穿多大号婚纱
后缀为.qic的文件应如何打开
神犬小七中,吕一丹在第几集死的
大理民间烧烤在哪里啊,我有事要去这个地方
5.8G 200mw图传信号不稳定,飞到几米远屏幕的
【轻举妄动】用“轻举妄动”造句。
龙阳防盗门地址有知道的么?有点事想过去
DNF冰属性攻击好还是火属性攻击好?
清耿耿的意思是什么啊?知道的请说下!
华银汽车修理厂地址在什么地方,想过去办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?