C语言结构体数组成员怎么赋值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言结构体数组成员怎么赋值?相关的知识,希望对你有一定的参考价值。
要给stu[0].name赋值该怎么写啊?我这样写是错的。
typedef struct student
int num;
char name[8];
st;
void infor(st stu[N])
stu[0].name="aa";
stu[1].name="bb";
...
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语言结构体数组的直接赋值及数组的长度计算:
#include<stdio.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;i<10;i++)
printf("%d\\n",myStr1[i].length);
return0;
参考技术A 给出一下代码,其中使用strcpy函数,头文件为#include<string.h>。其用法为strcpy(字符数组,需要拷贝的字符串);
#include <iostream>
#include <cstring>
using namespace std;
struct stu
char name[8];
char snum[9];
st[10];
int main()
strcpy(st[0].name,"sss");//在结构体中对字符型数组赋值通常是用strcpy函数
strcpy(st[0].snum,"alala");
cout<<st[0].name<<endl;
cout<<st[0].snum<<endl;
return 0;
参考技术B strcpy(stu[0].name,"aa");本回答被提问者采纳
如何给C语言结构体中的成员赋默认值
例如
struct node
int flag;;
我想每声明一个node变量,其中的flag值默认为0,该怎么办?
问题补充:那么在C语言中可不可以对结构体赋默认值呢?
比如:
struct date
nt month;
int day;
int year;
;
struct student
char name[20];
struct date birthday;
student1;
那么你想给student1的生日里的year赋值的话
student1.birthday.year=1987; 参考技术A 不能赋初值,会报错的 我刚刚在vc6.0 环境下面验证过了 参考技术B strcut node temp = 0;
以上是关于C语言结构体数组成员怎么赋值?的主要内容,如果未能解决你的问题,请参考以下文章