|
1、基本類型為字符類型的數(shù)組稱為字符數(shù)組。字符數(shù)組是用來存放字符的。字符數(shù)組時(shí)C語言中常用的一種數(shù)組。字符數(shù)組中的每個(gè)元素都是一個(gè)字符,因此可用字符數(shù)組來存放不同長度的字符串。
字符數(shù)組的定義方法與一般數(shù)組相同,例如
char good[12]={'I',' ','l','o','v','e','y','o','u'.'\0'};
也可以定義成char good[]={“I love you!”};
這兩種定義方式的效果是一樣的。
或者寫成更簡潔的型式:char good[]=“I love you!”;
2、在C語言中字符串是作為字符數(shù)組來處理的。一個(gè)一維的字符數(shù)組可以存放一個(gè)字符串,這個(gè)字符串的長度應(yīng)小于或等于字符數(shù)組的長度。為了測定字符串的實(shí)際長度,C語言規(guī)定以'\0'作為字符串結(jié)束標(biāo)志,對字符串常量也自動(dòng)加一個(gè)'\0'作為一個(gè)結(jié)束符。因此,字符數(shù)組int a[n]可以存儲(chǔ)的字符串最大長度為n-1,在訪問字符數(shù)組時(shí),遇到'\0'就表示字符串結(jié)束,因此在定義字符數(shù)組時(shí),應(yīng)使數(shù)組長度大于它允許存放的最大字符串的長度。
對于字符數(shù)組的訪問可以通過數(shù)組中的元素逐個(gè)進(jìn)行訪問,也可以對整個(gè)數(shù)組進(jìn)行訪問。
3、本實(shí)例利用P0口顯示字符串常量,
將待顯示字符串常量賦給一個(gè)字符型數(shù)組,然后通過數(shù)組元素引用的方法一次將各元素送到P0口顯示。字符型數(shù)組中各字符數(shù)據(jù)在單片機(jī)中是以字符的ASCII碼存放的,如‘a(chǎn)’的ASCII碼為97.將‘a(chǎn)’送到p0口,就相當(dāng)于把數(shù)據(jù)97送到P0口,所以P0口各LED會(huì)被相應(yīng)點(diǎn)亮。
4、在keil c51中新建工程文件ex32,編寫如下程序代碼,編譯并生成ex32.hex文件
// 實(shí)例32:字符串?dāng)?shù)組演示實(shí)例
#include //包含頭文件
void delay(void) //延時(shí)函數(shù)
{
unsigned char i,j;
for(i = 0;i < 220;i++)
for(j = 0;j < 220;j++);
}
void main(void)
{
unsigned char str[]={"I love mcu!"}; // 定義字符串?dāng)?shù)組,并賦值
unsigned char i;
while(1)
{ //
i=0; // I初始化為0,從數(shù)組的第一個(gè)元素開始顯示
while(str!='\0') //判斷字符串?dāng)?shù)組有沒有顯示到結(jié)束標(biāo)志
{
P0=str; // 將第I個(gè)字符送到P0口顯示
delay(); // 延時(shí)一會(huì)
i++; //指向下一個(gè)數(shù)組元素
}
}
}
[此貼子已經(jīng)被作者于2010-11-3 10:31:58編輯過]
|
|