
如何用string为char*赋值?!
RT,首先这样是不可以的char*c=s.c_str();c_str()函数返回的是constchar*型,是不能直接给char*赋值的。我是用一个循环数组把constc...
RT,首先 这样是不可以的 char *c = s.c_str();
c_str()函数返回的是const char*型,是不能直接给char* 赋值的。
我是用一个循环数组把 const char*付给了 char*;
例:
string s("abcdefg");
const char *cc = s.c_str();
int len = s.length();
char c[len+1];
for(int i =0; i<len; i++)
{
c[i] = cc[i];
}
c[len] = '\0';
以上就是我的方法用string s为char* c赋值,有没有更简单的方法呢?
linux环境下写的~
我想起了很早以前 Turbo C 上用变量申明数组貌似确实不行,非得用那个malloc。。。不过我在linux写的,用的g++,没有报错,能正常运行,以后一定注意尽量用new~~~
你的方法 貌似还不错勒~~谢谢~ 展开
c_str()函数返回的是const char*型,是不能直接给char* 赋值的。
我是用一个循环数组把 const char*付给了 char*;
例:
string s("abcdefg");
const char *cc = s.c_str();
int len = s.length();
char c[len+1];
for(int i =0; i<len; i++)
{
c[i] = cc[i];
}
c[len] = '\0';
以上就是我的方法用string s为char* c赋值,有没有更简单的方法呢?
linux环境下写的~
我想起了很早以前 Turbo C 上用变量申明数组貌似确实不行,非得用那个malloc。。。不过我在linux写的,用的g++,没有报错,能正常运行,以后一定注意尽量用new~~~
你的方法 貌似还不错勒~~谢谢~ 展开
1个回答
推荐于2016-11-04 · 知道合伙人数码行家
关注

展开全部
以上代码是不对的吧
char c[len+1]; //这里len是变量,能用来声明数组
直接strcpy就行了
string s("abcd");
int len = s.length();
char *c = new char[len+1];
strcpy(c, s.c_str());
delete[] c;
char c[len+1]; //这里len是变量,能用来声明数组
直接strcpy就行了
string s("abcd");
int len = s.length();
char *c = new char[len+1];
strcpy(c, s.c_str());
delete[] c;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询