詳解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)); } } }
結語這就是最近遇到的問題,這個問題困擾瞭很久,相信許多的初學者也遇到瞭這樣的問題,但是,網上的描述根本不怎麼好用,所以,希望本博主遇到的這個問題能幫助到你
總結
到此這篇關於C語言結構體中的char數組如何賦值的文章就介紹到這瞭,更多相關C語言結構體中char數組賦值內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!