c语言结构体中的一个char数组怎么赋值?

博客 动态
0 173
羽尘
羽尘 2022-03-04 16:56:10
悬赏:0 积分 收藏

c语言结构体中的一个char数组怎么赋值?

目录
  • 前景提示
    • 这里的结构体处理的步骤
      • 一.char数组类型的处理
      • 二.char数组指针类型的处理
      • 三.全部代码
        • 1. char数组
        • 2. char数组指针
      • 结语

前景提示

  • 定义一个结构体,结构体中有两个变量,其中一个是char类型的数组,那么,怎么向这个数组中插入数据,打印数据呢?
typedef struct SequenceList {	// 数组的元素	char element[20];	// 数组的长度	int length;};
  • 定义一个结构体,结构体中有两个变量,其中一个是char类型的数组指针,那么,怎么向这个数组中插入数据,打印数据呢?
// 定义顺序表结构体typedef struct SequenceList {	char *elment;	int length;};

这里的结构体处理的步骤

  • 结构体初始化
  • 结构体内数据赋值
  • 结构体内输出数据

本着上述的原则,先对第一种类型进行操作

一.char数组类型的处理

  • 1.结构体初始化
        SequenceList L;	L.element = (char*)malloc(sizeof(char)*10);	L.length  = 10
  • 2.结构体内数据赋值(简单法)
        L.elment[0] = 1;	L.elment[1] = 2;	L.elment[2] = 3;	L.elment[3] = 4;	L.elment[4] = 5;
  • for循环
      for (int i = 0; i < 10; i++)	{		L.elment[i] = i+1;	}
  • 3.结构体内输出数据
  for (int i = 0; i < 10; i++)	{	    //不会打印空值		if (L.elment[i]>0) {			printf("element[%d] = %d\n",i, L.elment[i]);		}	}

二.char数组指针类型的处理

  • 1.结构体初始化
   //结构体初始化   MyList L;   L.length = LENGTH;   L.elment = (char*)malloc(L.length * sizeof(char));
  • 2.结构体内数据赋值
    //结构体赋值	for (int i = 0; i < LENGTH; i++)	{		*(L.elment + i) = 'A' + i;	}
  • 3.结构体内输出数据
   //打印结构体中的值	for (int i = 0; i < LENGTH; i++)	{		if (*(L.elment + i) > 0) {			printf("elment[%d] = %c\n", i, *(L.elment + i));		}	}

三.全部代码

1. char数组
   // 010.顺序表_004.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#define MAXSIZE 10typedef struct SequenceList {	// 数组的元素	char element[MAXSIZE];	// 数组的长度	int length;};int main(){	// 1.初始化结构体	SequenceList *L;	L = (SequenceList*)malloc(sizeof(char)*MAXSIZE);	L->length = MAXSIZE;	// 2.存入结构体内值	for (int i = 0; i < MAXSIZE; i++)	{		L->element[i] = 'a' + i;	}	// 3.打印结构体内的值	for (int i = 0; i < MAXSIZE; i++)	{		if (*(L->element + i) > 0) {			printf("elment[%d] = %c\n", i, *(L->element + i));		}	}}

2. char数组指针
// 011.顺序表_005.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#define MAXSIZE 10typedef struct SequenceList {	// 数组的元素	char *element;	// 数组的长度	int length;};int main(){	// 1.结构体初始化	SequenceList L;	L.length = MAXSIZE;	L.element = (char*)malloc(L.length * sizeof(MAXSIZE));	// 2.结构体内赋值	for (int i = 0; i < MAXSIZE; i++)	{		*(L.element + i) = 'a' + i;	}	// 3.打印结构体中的值	for (int i = 0; i < MAXSIZE; i++)	{		if (*(L.element + i) > 0) {			printf("elment[%d] = %c\n", i, *(L.element + i));		}	}}

结语

  • 这就是最近遇到的问题,这个问题困扰了很久,相信许多的初学者也遇到了这样的问题,但是,网上的描述根本不怎么好用,所以,希望本博主遇到的这个问题能帮助到你,喜欢的话,请关注,点赞,收藏.
十年磨一剑,一剑破万法
posted @ 2022-03-04 16:28 北极的大企鹅 阅读(27) 评论(1) 编辑 收藏 举报
回帖
    羽尘

    羽尘 (王者 段位)

    2335 积分 (2)粉丝 (11)源码

     

    温馨提示

    亦奇源码

    最新会员