版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言中二維字符數(shù)組C語言中二維字符數(shù)組的定義和初始化一般來說,我們可能會希望定義一個(gè)二維字符數(shù)組并且在定義的時(shí)候就用一些字符串來初始化它。比如說:Code:1.chartestcase[30][MAX_LENGTH]={"jo","vicent","tom","honey","gigi","lily","susan","peter","bob","ron",2."jason","henry","kiki","ken","auscar","vivian","yiyi","peace","iron","lotus"3."andy","arta","ophone","denial","pipe","wade","james","kobe","kent","angel"};通常使用二維字符數(shù)組是為了在程序中存儲一些字符串關(guān)鍵字。用這樣的方式來初始化就最簡單不過了。其中,MAX_LENGTH是所有字符串中最大的長度。當(dāng)然不能忘記'\0'了。而定義一個(gè)字符二維數(shù)組,C也提供了簡潔的方式,如果我不想統(tǒng)計(jì)字符串的長度,我還可以這樣定義:Code:1.char*testcase[30]={"jo","vicent","tom","honey","gigi","lily","susan","peter","bob","ron",2."jason","henry","kiki","ken","auscar","vivian","yiyi","peace","iron","lotus"3."andy","arta","ophone","denial","pipe","wade","james","kobe","kent","angel"};也就是說,可以不再數(shù)組定義的時(shí)候指定字符串的長度,但是注意字符串的個(gè)數(shù)是一定要指定的,像這樣寫char**testcase=...是不行的,不過肯定不行了,因?yàn)閕nt*pt=3也不行,呵呵,這兩個(gè)例子是一個(gè)道理啊。我覺得肯定是人都喜歡第二種初始化方法了,而且它還有一個(gè)優(yōu)點(diǎn),起碼對喜歡用指針的同志來說是一個(gè)大優(yōu)點(diǎn)。就是可以將這樣定義的指針賦給一個(gè)二維指針,比如char**pointer=testcase;想形式1的定義方法肯定不能這樣賦值了。不過非常非常值得注意的是,上面定義的兩個(gè)指針,一個(gè)一維,一個(gè)二維,他們必須在const關(guān)鍵字上一致,意思就是說如果定義testcase前面加了const關(guān)鍵字,定義pointer時(shí)也必須加上,否則就會報(bào)錯(cuò):errorC2440:'initializing':cannotconvertfrom'char*[30]'to'constchar**在寫這篇日志的過程中,我突然想到一個(gè)問題,就似乎利用上面的方法二初始化二維字符串?dāng)?shù)組之中,字符串是如何分布的呢?因?yàn)樽址拈L度是不相等的,完全由編譯器來計(jì)算,那么它是會按照最長的字符串來定制字符數(shù)組的長度,還是讓每一個(gè)字符串?dāng)?shù)組都按照自身的大小來占據(jù)內(nèi)存,靠'\0'來識別結(jié)尾呢?二維字符串?dāng)?shù)組的初始化-動態(tài)內(nèi)存分配昨天在用FBS200指紋采集芯片采集到一個(gè)二維數(shù)組數(shù)據(jù)后,利用串口傳輸上來的數(shù)據(jù)是以十六進(jìn)制的數(shù)據(jù)格式表示的二維矩陣,比如"FF"、"BD"、"5C"等等這樣的形式,而對于一幅灰度圖像,一般都是在0~255之間的數(shù)據(jù)來表示其亮度值,因此想通過二維字符串?dāng)?shù)組來對采集過來的數(shù)據(jù)進(jìn)行轉(zhuǎn)化顯示。但在動態(tài)分配一個(gè)char**str;str=newchar*[128];之后對其進(jìn)行初始化時(shí),總是出現(xiàn)錯(cuò)誤,不知道如何才能很好的對其賦值,還得深入學(xué)習(xí)一下。其實(shí)對一個(gè)字符的轉(zhuǎn)化很容易,但對一個(gè)字符串形式的字符來轉(zhuǎn)化,而且是對一個(gè)多維數(shù)組來轉(zhuǎn)化就有點(diǎn)吃力了。首先建立一個(gè)多維字符串?dāng)?shù)組,這里是二維的字符串?dāng)?shù)組,程序如下所示:#include"stdio.h"voidmain(){ char*str1[2][2]={"FF","F9","FA","F9"};//初始化一個(gè)二維字符串?dāng)?shù)組 char*str;//定義一個(gè)一維字符串變量 inta,b; inti,j; intresult1; for(i=0;i<2;i++) { for(j=0;j<2;j++) { str=str1[i][j];//對一維字符串賦值 printf("%s\n",str); if(str[0]>='A'&&str[1]>='A') { a=int(str[0]-'A'); b=int(str[1]-'A'); result1=(a+10)*16+(b+10)*1;//"AA"~"FF"之間的轉(zhuǎn)化結(jié)果 } elseif(str[0]>='A'&&str[1]<'A') { a=int(str[0]-'A'); b='A'-str[1]+1; result1=(a+10)*16+b;//"A0"~"F9"之間的轉(zhuǎn)化結(jié)果 } elseif(str[0]<'A'&&str[1]>='A') { a='A'-str[0]+1; b=int(str[1]-'A'); result1=a*16+(b+10)*1;//"0A"~"9F"之間的轉(zhuǎn)化結(jié)果 } else { a='A'-str[0]+1; b='A'-str[1]+1; result1=a*16+b;//"00"~"99"之間的轉(zhuǎn)化結(jié)果 }一點(diǎn)是動態(tài)分配的優(yōu)點(diǎn),可克服數(shù)組"大開小用"的弊端,在表、排序與查找中的算法,若用動態(tài)數(shù)組,通用性更佳。一定注意:delete[]pc是將n個(gè)字符的空間釋放,而用deletepc則只釋放了一個(gè)字符的空間;②如果有一個(gè)char*pc1,令pc1=p,同樣可用delete[]pc1來釋放該空間。盡管C++不對數(shù)組作邊界檢查,但在堆空間分配時(shí),對數(shù)組分配空間大小是紀(jì)錄在案的。③沒有初始化式(initializer),不可對數(shù)組初始化。6.指針數(shù)組和數(shù)組指針指針類型:(1)int*ptr;//指針?biāo)赶虻念愋褪莍nt(2)char*ptr;//指針?biāo)赶虻牡念愋褪莄har(3)int**ptr;//指針?biāo)赶虻牡念愋褪莍nt*(也就是一個(gè)int*型指針)(4)int(*ptr)[3];//指針?biāo)赶虻牡念愋褪莍nt()[3]//二維指針的聲明指針數(shù)組:一個(gè)數(shù)組里存放的都是同一個(gè)類型的指針,通常我
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食材存儲倉庫管理制度(3篇)
- 小麥訂購活動策劃方案(3篇)
- 超市618活動策劃方案(3篇)
- 廣西糧油出入庫管理制度(3篇)
- 2025陜西延能天元智能裝備有限公司招聘(10人)參考考試題庫及答案解析
- 2026山東事業(yè)單位統(tǒng)考淄博文昌湖省級旅游度假區(qū)面向大學(xué)生退役士兵專項(xiàng)崗位公開招聘工作人員(1人)筆試備考試題及答案解析
- 2026貴州遵義市務(wù)川縣檔案館見習(xí)生招聘考試參考題庫及答案解析
- 2026湖北武漢市江岸區(qū)公立幼兒園招聘幼師2人參考考試題庫及答案解析
- 2026青海海西州格爾木市省級公益性崗位及勞動保障協(xié)理員招聘24人考試備考題庫及答案解析
- 江西省國有資本運(yùn)營控股集團(tuán)有限公司2026年第一批批次公開招聘備考考試題庫及答案解析
- 精神科保護(hù)性約束注意事項(xiàng)
- 故意傷害案件課件
- GB/T 21790-2025閃點(diǎn)的測定用小型閉杯試驗(yàn)儀測定閃燃非閃燃和閃點(diǎn)的方法
- 吉林省戶用光伏施工方案
- 江西省婺源縣聯(lián)考2026屆數(shù)學(xué)七年級第一學(xué)期期末學(xué)業(yè)水平測試試題含解析
- 2025至2030水蛭素產(chǎn)品行業(yè)發(fā)展研究與產(chǎn)業(yè)戰(zhàn)略規(guī)劃分析評估報(bào)告
- 餐飲連鎖加盟店標(biāo)準(zhǔn)運(yùn)營手冊
- 軍人翻墻導(dǎo)致的危害課件
- 園區(qū)運(yùn)營年終匯報(bào)
- (2025年標(biāo)準(zhǔn))公司基地農(nóng)戶協(xié)議書
- 2025時(shí)事政治必考題50題(含答案)
評論
0/150
提交評論