c++中如何将字符串变量的值赋给字符数组变量

例如我定义了
string f1="abcd";
char c1[10];
如何将f1赋值给c1

我们知道,同类型的变量之间可以相互赋值,但是对于同类型的数组来说,却是个例外。即使类型、元素个数都相同,也不能彼此赋值,要想赋值的唯一办法就是:以数组的元素为单位进行操作。对于您的问题,可以有以下程序解决:
main()
{
string f1="abcd";
char c1[10];
int i=0
for(i=0;i<10;i++)
{
if(f1[i]=='\0')/*检测源数组元素是否为空,YES,执行赋值,NO,退出*/
break;
else
c1[i]=f1[i];
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-07
(1)strcpy(c1,f1.c_str());

(2)memcpy(c1,f1.c_str(),f1.size());

(3)循环赋值

(4)memmove(c1,f1,c_str(),f1.size());

PS:STL string是不能强制类型转化成char*的,只能(char*)f1.c_str()
第2个回答  2019-11-18
我们知道,同类型的变量之间可以相互赋值,但是对于同类型的数组来说,却是个例外。即使类型、元素个数都相同,也不能彼此赋值,要想赋值的唯一办法就是:以数组的元素为单位进行操作。对于您的问题,可以有以下程序解决:
main()
{
string
f1="abcd";
char
c1[10];
int
i=0
for(i=0;i<10;i++)
{
if(f1[i]=='\0')/*检测源数组元素是否为空,YES,执行赋值,NO,退出*/
break;
else
c1[i]=f1[i];
}
}
第3个回答  2010-06-07
strcpy(c1,f1.c_str());
第4个回答  2012-06-27
strcat(c1,f1);