结构体中字符数组怎么赋值(结构体内字符串数组赋值)

http://www.itjxue.com  2023-01-28 19:17  来源:未知  点击次数: 

结构体成员数组赋值?

你把scanf("%f",((s+i)-score[j]));这个语句改为:

scanf("%f",(s[i].score[j]));

这样试试。

如何给结构体里的数组字符串赋值?

C语言只有在定义字符数组的时候才能用“=”来初始化变量,其它情况下是不能直接用“=”来为字符数组赋值的,要为字符数组赋值可以用string.h头文件中的strcpy函数来完成。

例如:

char a[10] = "123"; /*正确,在定义的时候初始化*/

char a[10];

a = "123"; /*错误,不能用“=”直接为字符数组赋值*/

strcpy(a, "123"); /*正确,使用strcpy函数复制字符串*/

所以要对game[0][0].cpart赋值应该用strcpy(game[0][0].cpart, "123");才对。注意要使用strcpy函数要用#include string.h包含string.h头文件。

结构体中的数组如何赋值

设结构体struct A:

#define NAME_SIZE????? 20

struct A{

int val;

char name[NAME_SIZE];

};

// 定义2个结构体对象

A a1, a2;

赋值方法

1. 利用库函数memcpy (头文件string.h), 可以对结构体对象整体赋值.

memcpy(a2, a1, sizeof a2); // = a2 = a1

2. 对每个成员单独进行赋值

a2.val = a1.val;

for (int i = 0; i NAME_SIZE; ++i)

a2.name[i] = a1.name[i];

C语言,结构体中的数组怎么赋值,?

intmain(void){

structstudentsbao={};

printf("%d,%s\n",bao.id,bao.name);//输出是4224528,空(应该是null)

//structstudentsbao={3,"123"};可以。第一种赋值方法

//strcpy(bao.name,"bao");//可以,

//printf("%d,%s\n",bao.id,bao.name);

//bao.name="bao";错误“stray'\351'inprogram”其他是乱码,

//bao.name[0]='a';

//bao.name[0]='/0';

//printf("%d,%s\n",bao.id,bao.name);

/*这样可以,*/

//chararr[10]="baobao";

////bao.name=arr;//error"assignmenttoexpressionwitharraytype"

//scanf("%s",bao.name);//可以,

//printf("%d,%s\n",bao.id,bao.name);

//所以scanf那一类函数都可以。

//还有就是memcpy函数也是可以的

return0;

}

扩展资料

C语言结构体数组的直接赋值及数组的长度计算:

#includestdio.h

//自定义一个字符串的结构体,包含字符串和字符串长度两个变量

typedefstructStr{

charch[100];

intlength;//char数组(字符串)的长度

}myStr;

//刚开始声明变量时每个变量的字符串长度length都为0

//这里以长度为10的数组为例,数组长度是1000

//对第0个到第9个结构体数组的长度同时赋值为0

myStrmyStr1[10]={

[0...9]={

.length=0,

}

};

intmain(){

inti;

for(i=0;i10;i++){

printf("%d\n",myStr1[i].length);

}

return0;

}

(责任编辑:IT教学网)

更多

推荐软件水平考试文章