结构体中字符数组的赋值

包含字符数组的结构体的初始化:

如一个包含着字符数组的结构体,定义如下

typedef struct st_IGMInfo
{
        /* IGM name */
        char Name[100];

        /* Mac address */
        unsigned char MAC[6];

        /* IGM location */
        char Location[255];

        int  nIGMNumber;

} st_IGMInfo;
初始化方式一:

int main()
{

        st_IGMInfo igminfo1 = {"hello", "who", "are you?", 8080};
......
}

赋值方法二:

int main()
{

        st_IGMInfo igminfo2;
        int hTargetFile = -1;
        char *name = "hello";
        char *mac = "who";
        char *location = "are you?";

        strcpy(igminfo2.Name, name);
        strcpy(igminfo2.MAC, mac);
        strcpy(igminfo2.Location, location);
        igminfo2.nIGMNumber = 8080;

        printf("igminfo2.Name = %s\n", igminfo2.Name);
        printf("igminfo2.MAC = %s\n", igminfo2.MAC);
        printf("igminfo2.Location = %s\n", igminfo2.Location);
        printf("igminfo2.nIGMNumber = %d\n", igminfo2.nIGMNumber);

......
}
第二种方法确实麻烦了很多,最麻烦的是单个字符赋值的,如下面一段代码:

struct st {
char name[21];
int num;
};

input ()
{
int i=0;
char ch;
while(i!=21)
{
scanf("%d,%c\n",&i,&ch);
if(0<i<19)
i=19;
else i++;
struct.name[i]=ch;
}
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值