VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 669|回复: 5

一个关于结构体字符数组元素赋值的问题

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-2-11 12:00:02 | 显示全部楼层 |阅读模式
别人问我一个问题,代码如下
#include<iostream>
using namespace std;

struct pizza
{
char company[3];
double diameter;
double weight;
};

int main()
{
pizza *ps =new pizza[3];
ps[0].company="qq";
ps[0].diameter=1.2;
ps[0].weight=1.2;
      
ps[1].company="w";
ps[1].diameter=2.2;
ps[1].weight=2.2;  

ps[2].company="e";
ps[2].diameter=3.2;
ps[2].weight=3.2;         

cout<<ps[0].company<<endl;
cout<<ps[0].diameter<<endl;
cout<<ps[0].weight<<endl;

cout<<ps[1].company<<endl;
cout<<ps[1].diameter<<endl;
cout<<ps[1].weight<<endl;

cout<<ps[2].company<<endl;
cout<<ps[2].diameter<<endl;
cout<<ps[2].weight<<endl;

delete []ps;

cin.get();
cin.get();
return 0;                                                                                                                                                           
}
以上的错误应该是字符数组常量问题(我用java较多,c++还是以前看的一点印象),ps[0].company="qq";这样对字符串常量的操作语句肯定不行。我将结构体内的char company[3];改为char *company;调试通过。
我的问题是,如何不改动结构体定义,即还用char company[3];,修改赋值语句,通过指针来赋值?(不知道如何获得company元素的指针)
说的乱七八糟,不知大虾们明白了吗?
回复

使用道具 举报

0

主题

55

帖子

44.00

积分

新手上路

Rank: 1

积分
44.00
发表于 2020-4-6 19:00:01 | 显示全部楼层
用string代替char */char[]
回复

使用道具 举报

0

主题

63

帖子

43.00

积分

新手上路

Rank: 1

积分
43.00
发表于 2020-4-7 12:15:01 | 显示全部楼层
用strcpy代替=,注意數組大小
回复

使用道具 举报

0

主题

63

帖子

43.00

积分

新手上路

Rank: 1

积分
43.00
发表于 2020-4-7 13:00:01 | 显示全部楼层
such as: strcpy(ps[0].company,"qq");
回复

使用道具 举报

0

主题

63

帖子

43.00

积分

新手上路

Rank: 1

积分
43.00
发表于 2020-4-7 15:00:02 | 显示全部楼层
加上#include <cstring>
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-4-15 09:15:01 | 显示全部楼层
谢谢各位!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表