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

例如我定义了string f1="abcd";char c1[10];如何将f1赋值给c1
2024-10-30 08:03:16
推荐回答(5个)
回答1:

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

}

回答2:

(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()

回答3:

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

回答4:

strcpy(c1,f1.c_str());

回答5:

strcat(c1,f1);