C語言定義字符串?dāng)?shù)組簡(jiǎn)單代碼示例
一、字符串
在C語言中,字符串?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í)際上不需要這么多,只是為了說明
"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語言定義字符串?dāng)?shù)組的文章就介紹到這了,更多相關(guān)C語言定義字符串?dāng)?shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vs2019+Qt+Opencv環(huán)境配置心得(圖文)
這篇文章主要介紹了Vs2019+Qt+Opencv環(huán)境配置心得(圖文),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
深入淺析C/C++語言結(jié)構(gòu)體指針的使用注意事項(xiàng)
這篇文章主要介紹了C/C++語言結(jié)構(gòu)體指針的使用,大家都知道指針在32位系統(tǒng)占用4Byte,在64位系統(tǒng)占用8Byte,下面看下c語言代碼例子2021-12-12
C++實(shí)現(xiàn)訪問者模式的基礎(chǔ)介紹
訪問者模式表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中各元素的操作,它使我們可以在不改變各元素的類的前提下定義作用于這些元素的新操作。對(duì)C++訪問者模式相關(guān)知識(shí)感興趣的朋友一起看看吧2021-09-09

