我们知道,同类型的变量之间可以相互赋值,但是对于同类型的数组来说,却是个例外。即使类型、元素个数都相同,也不能彼此赋值,要想赋值的唯一办法就是:以数组的元素为单位进行操作。对于您的问题,可以有以下程序解决:
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)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()
我们知道,同类型的变量之间可以相互赋值,但是对于同类型的数组来说,却是个例外。即使类型、元素个数都相同,也不能彼此赋值,要想赋值的唯一办法就是:以数组的元素为单位进行操作。对于您的问题,可以有以下程序解决:
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];
}
}
strcpy(c1,f1.c_str());
strcat(c1,f1);