版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手機店合同協(xié)議
- 煤礦復(fù)工合同范本
- 苗木保障協(xié)議書
- 苗木運輸協(xié)議合同
- 蔬菜供需協(xié)議書
- 認(rèn)養(yǎng)子女協(xié)議書
- 認(rèn)購更名協(xié)議書
- 設(shè)備合作協(xié)議書
- 設(shè)備競買協(xié)議書
- 設(shè)施共享協(xié)議書
- 文創(chuàng)創(chuàng)業(yè)IP打造與產(chǎn)品變現(xiàn)實戰(zhàn)方案2026年
- 2025年云南省人民檢察院聘用制書記員招聘(22人)筆試考試備考試題及答案解析
- 遼寧省名校聯(lián)盟2025年高三12月份聯(lián)合考試英語試卷(含答案詳解)
- 基于遙感技術(shù)的湘西土家族苗族自治州石漠化動態(tài)監(jiān)測與深度解析
- 2025年本溪輔警招聘考試真題及答案詳解(典優(yōu))
- 西農(nóng)植物病理學(xué)課件
- 三級安全教育試題(公司級、部門級、班組級)真題題庫
- 新生入學(xué)體檢協(xié)議書
- 鄭州鐵路職業(yè)技術(shù)學(xué)院單招網(wǎng)試題庫及答案
- 2025至2030全球及中國光學(xué)氣體成像(OGI)相機行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025年甘肅省書記員考試試題及答案
評論
0/150
提交評論