c語言結構體中的一個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 10


typedef 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 10


typedef 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));
		}

	}
}



結語

  • 這就是最近遇到的問題,這個問題困擾了很久,相信許多的初學者也遇到了這樣的問題,但是,網上的描述根本不怎么好用,所以,希望本博主遇到的這個問題能幫助到你,喜歡的話,請關注,點贊,收藏.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM