加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Char不在C中的多维数组中工作.需要澄清

发布时间:2020-12-16 10:12:45 所属栏目:百科 来源:网络整理
导读:我试图为多种数据类型创建一个2d数组,但它似乎不接受char数据类型.为什么是这样? struct {union { int ival; float fval; char cval[50];} val;} as[120][4];as[0][1].val.cval = "Testtttt"; ***This does not work***as[1][1].val.ival = 3; ***This work
我试图为多种数据类型创建一个2d数组,但它似乎不接受char数据类型.为什么是这样?

struct {
union {
    int ival;
    float fval;
    char cval[50];
} val;
} as[120][4];


as[0][1].val.cval = "Testtttt";  ***This does not work***
as[1][1].val.ival = 3;  ***This works***

解决方法

您在 c,因此在字符串处理方面您应该使用 string.h!

改变这个:

as[0][1].val.cval = "Testtttt";

对此:

strcpy(as[0][1].val.cval,"Testtttt");

通过使用strcpy()而不是赋值运算符(这将在c++中工作,而不是在c中).

当然,存在替代功能,例如strncpy() *和memcpy().

此外,由于C字符串处理对您来说似乎很新,您必须阅读约null terminated strings in C.

*致@fukanchik的人提醒我

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读