c語言字符數(shù)組使用方法_第1頁
c語言字符數(shù)組使用方法_第2頁
c語言字符數(shù)組使用方法_第3頁
c語言字符數(shù)組使用方法_第4頁
c語言字符數(shù)組使用方法_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——c語言字符數(shù)組使用方法c語言字符數(shù)組使用方法

字符數(shù)組是一個存儲字符的數(shù)組,而字符串是一個用雙括號括起來的以'\0'終止的字符序列,以下是我探尋整理的關(guān)于c語言字符數(shù)組使用方法,供參考借鑒,夢想對大家有所扶助!想了解更多相關(guān)信息請持續(xù)關(guān)注我們我!

1、字符數(shù)組的定義與初始化

字符數(shù)組的初始化,最輕易理解的方式就是逐個字符賦給數(shù)組中各元素。

charstr[10]='I','','a','m','',‘h','a','p','p','y';

即把10個字符分別賦給str[0]到str[9]10個元素

假設(shè)花括號中供給的字符個數(shù)大于數(shù)組長度,那么按語法錯誤處理;若小于數(shù)組長度,那么只將這些字符數(shù)組中前面那些元素,其余的元素自動定為空字符即'\0'。

2、字符數(shù)組與字符串

在c語言中,將字符串作為字符數(shù)組來處理。c++中不是

在實際應(yīng)用中人們關(guān)切的是有效字符串的長度而不是字符數(shù)組的長度,例如,定義一個字符數(shù)組長度為100,而實際有效字符只有40個,為了測定字符串的實際長度,C語言規(guī)定了一個“字符串終止標(biāo)志”,以字符'\0'代表。假設(shè)有一個字符串,其中第10個字符為'\0',那么此字符串的有效字符為9個。也就是說,在遇到第一個字符'\0'時,表示字符串終止,由它前面的字符組成字符串。

系統(tǒng)對字符串常量也自動加一個'\0'作為終止符。例如"CProgram”共有9個字符,但在內(nèi)存中占10個字節(jié),結(jié)果一個字節(jié)'\0'是系統(tǒng)自動加上的。通過sizeof函數(shù)可驗證

有了終止標(biāo)志'\0'后,字符數(shù)組的長度就顯得不那么重要了,在程序中往往依靠檢測'\0'的位置來判定字符串是否終止,而不是根據(jù)數(shù)組的長度來抉擇字符串長度。當(dāng)然,在定義字符數(shù)組時應(yīng)估計實際字符串長度,保證數(shù)組長度始終大于字符串實際長度。在實際字符串定義中,往往并不指定數(shù)組長度,如charstr[]

說明:''代表ASCII碼為0的字符,從ASCII碼表中可以查到ASCII碼為0的字符不是一個可以顯示的字符,而是一個“空操作符”,即它什么也不干。用它來作為字符串終止標(biāo)志不會產(chǎn)生附加的操作或增加有效字符,只起一個供分辯的標(biāo)志。

對C語言處理字符串的方法由以上的了解后,再對字符數(shù)組初始化的方法補充一種方法——即可以用字符串常量來初始化字符數(shù)組:

charstr[]="Iamhappy";可以省略花括號,如下所示

charstr[]="Iamhappy";

留神:上述這種字符數(shù)組的整體賦值只能在字符數(shù)組初始化時使用,不能用于字符數(shù)組的賦值,字符數(shù)組的賦值只能對其元素一一賦值,下面的賦值方法是錯誤的

charstr[];

str="Iamhappy";

不是用單個字符作為初值,而是用一個字符串留神:字符串的兩端是用雙引號“”而不是單引號‘'括起來的作為初值。鮮明,這種方法更直觀便當(dāng)。留神:數(shù)組str的長度不是10,而是11,這點請務(wù)必記住,由于字符串常量"Iamhappy"的結(jié)果由系統(tǒng)自動加上一個'\0'

因此,上面的初始化與下面的初始化等價

charstr[]='I','','a','m','','h','a','p','p','y','\0';

而不與下面的等價

charstr[]='I','','a','m','','h','a','p','p','y';

前者的長度是11,后者的長度是10.

說明:字符數(shù)組并不要求它的結(jié)果一個字符為'\0',甚至可以不包含'\0',向下面這樣寫是完全合法的。

charstr[5]='C','h','i','n','a';

++++++++

可見,用兩種不同方法初始化字符數(shù)組后得到的數(shù)組長度是不同的。

#include

voidmainvoid

charc1[]='I','','a','m','','h','a','p','p','y';

charc2[]="Iamhappy";

inti1=sizeofc1;

inti2=sizeofc2;

printf"%d",i1;

printf"%d",i2;

結(jié)果:1011

3、字符串的表示形式

在C語言中,可以用兩種方法表示和存放字符串:

1用字符數(shù)組存放一個字符串

charstr[]="IloveChina";

2用字符指針指向一個字符串

char*str="IloveChina";

對于其次種表示方法,有人認(rèn)為str是一個字符串變量,以為定義時把字符串常量"IloveChina"直接賦給該字符串變量,這是不對的。

C語言對字符串常量是按字符數(shù)組處理的`,在內(nèi)存中開發(fā)了一個字符數(shù)組用來存放字符串常量,程序在定義字符串指針變量str時只是把字符串首地址即存放字符串的字符數(shù)組的首地址賦給str。

兩種表示方式的字符串輸出都用

printf"%s",str;

%s表示輸出一個字符串,給出字符指針變量名str對于第一種表示方法,字符數(shù)組名即是字符數(shù)組的首地址,與其次種中的指針意義是一致的,那么系統(tǒng)先輸出它所指向的一個字符數(shù)據(jù),然后自動使str自動加1,使之指向下一個字符...,如此,直到遇到字符串終止標(biāo)識符"\0"。

4、對使用字符指針變量和字符數(shù)組兩種方法表示字符串的議論

雖然用字符數(shù)組和字符指針變量都能實現(xiàn)字符串的存儲和運算,但它們二者之間是有識別的,不應(yīng)混為一談。

4.1、字符數(shù)組由若干個元素組成,每個元素放一個字符;而字符指針變量中存放的是地址字符串/字符數(shù)組的首地址,絕不是將字符串放到字符指針變量中是字符串首地址

4.2、賦值方式:

對字符數(shù)組只能對各個元素賦值,不能用以下方法對字符數(shù)組賦值

charstr[14];

str="IloveChina";但在字符數(shù)組初始化時可以,即charstr[14]="IloveChina";

而對字符指針變量,采用下面方法賦值:

char*a;

a="IloveChina";

或者是char*a="IloveChina";都可以

4.3、對字符指針變量賦初值初始化:

char*a="IloveChina";

等價于:

char*a;

a="IloveChina";

而對于字符數(shù)組的初始化

charstr[14]="IloveChina";

不能等價于:

charstr[14];

str="IloveChina";這種不是初始化,而是賦值,而對數(shù)組這樣賦值是不對的

4.4、假設(shè)定義了一個字符數(shù)組,那么它有確定的內(nèi)存地址;而定義一個字符指針變量時,它并未指向某個確定的字符數(shù)據(jù),并且可以屢屢賦值。

5、字符串處理函數(shù)

5.1

char*strcatchar*str1,constchar*2;

char*strcatchar*strDestination,constchar*strSource;

功能:函數(shù)將字符串str2連接到str1的末端,并返回指針str1

注:連接前兩個字符串的后面都有一個'\0',連接時將字符串1后面的'\0‘去掉,只在新串結(jié)果留存一個'\0‘

5.2

char*strcpychar*str1,constchar*2;

char*strcpychar*strDestination,constchar*strSource;

功能:復(fù)制字符串strSource中的字符到字符串strDestination,包括空值終止符。返回值為指針strDestination。

注:1、“字符數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論