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

例如我定义了stringf1="abcd";charc1[10];如何将f1赋值给c1... 例如我定义了
string f1="abcd";
char c1[10];
如何将f1赋值给c1
展开
 我来答
zybzyb1987
推荐于2018-04-05 · TA获得超过770个赞
知道答主
回答量:127
采纳率:0%
帮助的人:183万
展开全部
我们知道,同类型的变量之间可以相互赋值,但是对于同类型的数组来说,却是个例外。即使类型、元素个数都相同,也不能彼此赋值,要想赋值的唯一办法就是:以数组的元素为单位进行操作。对于您的问题,可以有以下程序解决:
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];
}

}
whl287
2010-06-07 · TA获得超过595个赞
知道小有建树答主
回答量:429
采纳率:0%
帮助的人:0
展开全部
(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()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ee38f3f67eb
2019-11-18 · TA获得超过981个赞
知道小有建树答主
回答量:1187
采纳率:100%
帮助的人: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];
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangtk1982
2010-06-07 · TA获得超过3742个赞
知道大有可为答主
回答量:3206
采纳率:100%
帮助的人:1404万
展开全部
strcpy(c1,f1.c_str());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hanyu19970809
2012-06-27
知道答主
回答量:7
采纳率:0%
帮助的人:6180
展开全部
strcat(c1,f1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式