詳解C語言結(jié)構(gòu)體中的char數(shù)組如何賦值
前景提示
定義一個結(jié)構(gòu)體,結(jié)構(gòu)體中有兩個變量,其中一個是char類型的數(shù)組,那么,怎么向這個數(shù)組中插入數(shù)據(jù),打印數(shù)據(jù)呢?
typedef struct SequenceList { // 數(shù)組的元素 char element[20]; // 數(shù)組的長度 int length; };
定義一個結(jié)構(gòu)體,結(jié)構(gòu)體中有兩個變量,其中一個是char類型的數(shù)組指針,那么,怎么向這個數(shù)組中插入數(shù)據(jù),打印數(shù)據(jù)呢?
// 定義順序表結(jié)構(gòu)體 typedef struct SequenceList { char *elment; int length; };
這里的結(jié)構(gòu)體處理的步驟
- 結(jié)構(gòu)體初始化
- 結(jié)構(gòu)體內(nèi)數(shù)據(jù)賦值
- 結(jié)構(gòu)體內(nèi)輸出數(shù)據(jù)
本著上述的原則,先對第一種類型進(jìn)行操作
一.char數(shù)組類型的處理
1.結(jié)構(gòu)體初始化
SequenceList L; L.element = (char*)malloc(sizeof(char)*10); L.length = 10
2.結(jié)構(gòu)體內(nèi)數(shù)據(jù)賦值(簡單法)
L.elment[0] = 1; L.elment[1] = 2; L.elment[2] = 3; L.elment[3] = 4; L.elment[4] = 5;
for循環(huán)
for (int i = 0; i < 10; i++) { L.elment[i] = i+1; }
3.結(jié)構(gòu)體內(nèi)輸出數(shù)據(jù)
for (int i = 0; i < 10; i++) { //不會打印空值 if (L.elment[i]>0) { printf("element[%d] = %d\n",i, L.elment[i]); } }
二.char數(shù)組指針類型的處理
1.結(jié)構(gòu)體初始化
//結(jié)構(gòu)體初始化 MyList L; L.length = LENGTH; L.elment = (char*)malloc(L.length * sizeof(char));
2.結(jié)構(gòu)體內(nèi)數(shù)據(jù)賦值
//結(jié)構(gòu)體賦值 for (int i = 0; i < LENGTH; i++) { *(L.elment + i) = 'A' + i; }
3.結(jié)構(gòu)體內(nèi)輸出數(shù)據(jù)
//打印結(jié)構(gòu)體中的值 for (int i = 0; i < LENGTH; i++) { if (*(L.elment + i) > 0) { printf("elment[%d] = %c\n", i, *(L.elment + i)); } }
三.全部代碼
1. char數(shù)組
// 010.順序表_004.cpp : 此文件包含 "main" 函數(shù)。程序執(zhí)行將在此處開始并結(jié)束。 // #include <iostream> #define MAXSIZE 10 typedef struct SequenceList { // 數(shù)組的元素 char element[MAXSIZE]; // 數(shù)組的長度 int length; }; int main() { // 1.初始化結(jié)構(gòu)體 SequenceList *L; L = (SequenceList*)malloc(sizeof(char)*MAXSIZE); L->length = MAXSIZE; // 2.存入結(jié)構(gòu)體內(nèi)值 for (int i = 0; i < MAXSIZE; i++) { L->element[i] = 'a' + i; } // 3.打印結(jié)構(gòu)體內(nèi)的值 for (int i = 0; i < MAXSIZE; i++) { if (*(L->element + i) > 0) { printf("elment[%d] = %c\n", i, *(L->element + i)); } } }
2. char數(shù)組指針
// 011.順序表_005.cpp : 此文件包含 "main" 函數(shù)。程序執(zhí)行將在此處開始并結(jié)束。 // #include <iostream> #define MAXSIZE 10 typedef struct SequenceList { // 數(shù)組的元素 char *element; // 數(shù)組的長度 int length; }; int main() { // 1.結(jié)構(gòu)體初始化 SequenceList L; L.length = MAXSIZE; L.element = (char*)malloc(L.length * sizeof(MAXSIZE)); // 2.結(jié)構(gòu)體內(nèi)賦值 for (int i = 0; i < MAXSIZE; i++) { *(L.element + i) = 'a' + i; } // 3.打印結(jié)構(gòu)體中的值 for (int i = 0; i < MAXSIZE; i++) { if (*(L.element + i) > 0) { printf("elment[%d] = %c\n", i, *(L.element + i)); } } }
結(jié)語這就是最近遇到的問題,這個問題困擾了很久,相信許多的初學(xué)者也遇到了這樣的問題,但是,網(wǎng)上的描述根本不怎么好用,所以,希望本博主遇到的這個問題能幫助到你
總結(jié)
到此這篇關(guān)于C語言結(jié)構(gòu)體中的char數(shù)組如何賦值的文章就介紹到這了,更多相關(guān)C語言結(jié)構(gòu)體中char數(shù)組賦值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++如何獲取系統(tǒng)信息 C++獲取IP地址、硬件信息等
這篇文章主要為大家詳細(xì)介紹了C++如何獲取系統(tǒng)信,C++獲取IP地址、硬件信息等,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04C語言標(biāo)準(zhǔn)庫<math.h>和<setjmp.h>的實(shí)現(xiàn)
本文主要介紹了C語言標(biāo)準(zhǔn)庫<math.h>和<setjmp.h>的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11C語言的數(shù)據(jù)結(jié)構(gòu)之樹、森連、二叉樹之間的轉(zhuǎn)換圖解
這篇文章主要介紹了C語言的數(shù)據(jù)結(jié)構(gòu)之樹、森連、二叉樹之間的轉(zhuǎn)換詳解,數(shù)據(jù)是信息的載體,是描述客觀事物屬性的數(shù)、字符以及所有能輸入到計算機(jī)中并被程序識別和處理的符號的集合,需要的朋友可以參考下2023-07-07C語言詳細(xì)講解通過遞歸實(shí)現(xiàn)掃雷的展開
windows自帶的游戲《掃雷》是陪伴了無數(shù)人的經(jīng)典游戲,本文將利用C語言實(shí)現(xiàn)這一經(jīng)典的游戲,文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下2022-05-05