C語(yǔ)言定義字符串?dāng)?shù)組簡(jiǎn)單代碼示例
一、字符串
在C語(yǔ)言中,字符串?dāng)?shù)組是一種存儲(chǔ)多個(gè)字符串的數(shù)組。每個(gè)字符串本身是一個(gè)字符數(shù)組,以空字符(\0)結(jié)尾。
二、定義字符串?dāng)?shù)組
2.1 字符數(shù)組組成的數(shù)組
這種方式可以存儲(chǔ)固定長(zhǎng)度的字符串。示例:
//存儲(chǔ)5個(gè)字符串,每個(gè)字符串最多有20個(gè)字符(包括空字符) #include <stdio.h> #include <string.h> int main(void) { char strArray[5][20]; // 定義一個(gè)5x20的字符數(shù)組 // 初始化字符串?dāng)?shù)組 strcpy(strArray[0], "Hello"); strcpy(strArray[1], "World"); strcpy(strArray[2], "C Language"); strcpy(strArray[3], "Programming"); strcpy(strArray[4], "is Fun"); // 打印字符串?dāng)?shù)組 for (int i = 0; i < 5; i++) { printf("%s\n", strArray[i]); } return 0; }
#include <stdio.h> #include <string.h> int main(void) { char strArray[5][20] = { "Hello\0\0\0\0\0\0\0\0\0\0\0\0", // 注意:這里手動(dòng)添加了空字符和填充字符,實(shí)際上不需要這么多,只是為了說(shuō)明 "World\0", "C Lang\0", // 注意:這里"C Language"被截?cái)酁?C Lang",以適應(yīng)數(shù)組大小 "Progra\0", // "Programming"被截?cái)酁?Progra" "is Fun\0" }; // 打印字符串?dāng)?shù)組 for (int i = 0; i < 5; i++) { printf("%s\n", strArray[i]); } return 0; }
strcpy函數(shù)用于將字符串復(fù)制到字符數(shù)組中。strArray是一個(gè)二維數(shù)組,其中strArray[i]是一個(gè)長(zhǎng)度為20的字符數(shù)組(字符串)。
2.2 指針數(shù)組
這種方式可以存儲(chǔ)長(zhǎng)度不固定的字符串。
//存儲(chǔ)5個(gè)字符串,但它們的長(zhǎng)度是未知的 #include <stdio.h> #include <string.h> int main(void) { const char *strArray[5]; // 定義一個(gè)指針數(shù)組 // 初始化字符串?dāng)?shù)組 strArray[0] = "Hello"; strArray[1] = "World"; strArray[2] = "C Language"; strArray[3] = "Programming"; strArray[4] = "is Fun"; // 打印字符串?dāng)?shù)組 for (int i = 0; i < 5; i++) { printf("%s\n", strArray[i]); } return 0; }
#include <stdio.h> #include <string.h> int main(void) { const char *strArray[5] = { "Hello", "World", "C Language", "Programming", "is Fun" }; // 打印字符串?dāng)?shù)組 for (int i = 0; i < 5; i++) { printf("%s\n", strArray[i]); } return 0; }
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { char *strArray[5]; // 定義一個(gè)指針數(shù)組 // 初始化字符串?dāng)?shù)組 strArray[0] = ( char *)malloc(strlen( "Hello")); strArray[1] = ( char *)malloc(strlen( "World")); strArray[2] = ( char *)malloc(strlen( "C Language")); strArray[3] = ( char *)malloc(strlen( "Programming")); strArray[4] = ( char *)malloc(strlen( "is Fun")); strcpy(strArray[0], "Hello"); strcpy(strArray[1], "World"); strcpy(strArray[2], "C Language"); strcpy(strArray[3], "Programming"); strcpy(strArray[4], "is Fun"); // 打印字符串?dāng)?shù)組 for (int i = 0; i < 5; i++) { printf("%s\n", strArray[i]); } //free for (int i = 0; i < 5; i++) { free(strArray[i]); } return 0; }
strArray是一個(gè)指針數(shù)組,每個(gè)元素都指向一個(gè)字符串字面量。這種方法更靈活,因?yàn)樽址拈L(zhǎng)度可以不同,但所有字符串都必須是靜態(tài)量或動(dòng)態(tài)分配的(例如使用malloc)。
注意事項(xiàng):
1、使用字符數(shù)組時(shí),要確保不超出數(shù)組的邊界,否則會(huì)導(dǎo)致未定義行為。
2、使用指針數(shù)組時(shí),要確保字符串的生命周期,避免懸掛指針(即指向已釋放內(nèi)存的指針)。
3、動(dòng)態(tài)分配內(nèi)存時(shí),記得在程序結(jié)束時(shí)釋放內(nèi)存(使用free函數(shù))。
總結(jié)
到此這篇關(guān)于C語(yǔ)言定義字符串?dāng)?shù)組的文章就介紹到這了,更多相關(guān)C語(yǔ)言定義字符串?dāng)?shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言用遞歸函數(shù)實(shí)現(xiàn)漢諾塔
大家好,本篇文章主要講的是C語(yǔ)言用遞歸函數(shù)實(shí)現(xiàn)漢諾塔,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01詳解C++調(diào)用Python腳本中的函數(shù)的實(shí)例代碼
這篇文章主要介紹了C++調(diào)用Python腳本中的函數(shù) ,需要的朋友可以參考下2018-11-11C語(yǔ)言深入分析整形數(shù)據(jù)存儲(chǔ)
C語(yǔ)言中,我們經(jīng)常使用數(shù)據(jù)類(lèi)型,那么整形數(shù)據(jù)在內(nèi)存中如何存儲(chǔ)?存儲(chǔ)方式是什么?如果你對(duì)這些內(nèi)容不太了解的話,相信看完這篇博客后,你會(huì)對(duì)整形數(shù)據(jù)的存儲(chǔ)有一個(gè)新的認(rèn)識(shí)。話不多說(shuō),我們進(jìn)入正題2022-08-08C/C++實(shí)現(xiàn)的MD5哈希校驗(yàn)的示例代碼
MD5算法是一種廣泛使用的 Hash 算法,常用于確保信息傳輸?shù)耐暾耘c一致性,本文主要介紹了C/C++實(shí)現(xiàn)的MD5哈希校驗(yàn)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10使用mmap實(shí)現(xiàn)多進(jìn)程對(duì)大文件拷貝
這篇文章主要介紹了使用mmap實(shí)現(xiàn)多進(jìn)程對(duì)大文件拷貝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10vscode和cmake編譯多個(gè)C++文件的實(shí)現(xiàn)方法
這篇文章主要介紹了vscode和cmake編譯多個(gè)C++文件的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03C/C++ 中g(shù)cc和g++的對(duì)比與區(qū)別
這篇文章主要介紹了C/C++ 中g(shù)cc和g++的對(duì)比與區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-07-07