




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 9 章 字符串處理算法2018/10/21字符串的查找、替換及字符串與數(shù)值之間的轉(zhuǎn)換是字符串處理中比較常用的算法,在FORTRAN 95中,字符處理的對(duì)象是字符型數(shù)據(jù)。字符型數(shù)據(jù)包括:字符型常數(shù)、字符型變量、字符型數(shù)組、字符子串、字符表達(dá)式和字符函數(shù),除了字符函數(shù)之外,其它字符型數(shù)據(jù)通過(guò)前面章節(jié)學(xué)習(xí)已介紹了它們的使用,本章介紹字符函數(shù)的用法。 為了方便對(duì)文字信息的處理,F(xiàn)ORTRAN 95提供了一些字符運(yùn)算的函數(shù) ,其格式和功能見(jiàn)教材。2018/10/22常用字符函數(shù)使用例9.1 輸出一個(gè)由英文字母構(gòu)成的字符串,把字符串中所有小寫字母轉(zhuǎn)換為大寫字母并輸出。program ex901impl
2、icit none character*80 strl,str2 integer k,l,i read(*,(a)strl str2=strlk=len(str2) l=ichar(a)-ichar(“A) do i=1,kif(str2(i:i)=a.and.str2(i:i)=85)then jl(i)=”優(yōu)”else if(cj(i)=60)then jl(i)=”合格”elsejl(i)=”不合格” end ifend do do i=1,5write(*,*)trim(name(i)/”外語(yǔ)競(jìng)賽成績(jī)是”/jl(i) end doend,王麗,于紅/)2018/10/24例9.5 從字
3、符串S中刪除前兩個(gè)非A字符后,輸出S字符串。program ex905 implicit none character s*60,c*1 integer i,k s=ABCADA c=Ado k=1,2i=verify(s,c) s(i:)=s(i+1:)end do print *,s end!求非A在字符串s中的位置2018/10/25例9.6 編寫輸出三角形的程序。program ex906implicit none character*80,line integer ndo n=1,6 line= line(40-2*(n-1):40+2*(n-1)= repeat(* ,2*n-1)
4、 print *,lineend do end程序執(zhí)行示例:* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *2018/10/26例9.11 設(shè)一個(gè)英文句子是由多個(gè)單詞組成的,且每?jī)蓚€(gè)單詞之間包含一個(gè)或多個(gè)空格,句子用句號(hào)(圓點(diǎn))結(jié)束,句子的長(zhǎng)度不超過(guò)80個(gè)字符,列出這個(gè)英文句子的各個(gè)單詞。程 序 如 下 : program ex911implicit none character(len=80)text integer endofwordprint *,輸入一個(gè)英文句子: read(*,*)texttext=adjust
5、l(text) call compress(text,.)call compress_bb(text) doif(len_trim(text)=0)exit!把字符串text首部空格調(diào)到尾部(字符串左對(duì)齊)!調(diào)用子程序compress,去掉英文句中句號(hào).!調(diào)用子程序compress_bb,壓縮雙空格為單空格.endofword=index(text, )-1 print *,text(1:endofword)!輸出一個(gè)單詞!去掉已輸出的單詞text=text(endofword+2:) end doend2018/10/27! 去掉英文句中句號(hào)的子程序subroutine compress(s
6、tr,ch)implicit none character(len=*)str,ch*1 integer idoi=index(str,ch) if(i=0)exit str(i:)=str(i+1:)end do end! 壓縮雙空格為單空格的子程序subroutine compress_bb(text) implicit none character(len=*)textinteger i do!查找雙空格在字符串text中的左起開(kāi)始位置i=index(trim(text) ,) if(i=0)exittext(i:)=text(i+1:) end doend程序執(zhí)行示例:All that
7、 glitters isnot gold輸入一個(gè)英文句子:“All thatglittersis not gold.”2018/10/28例9.12 有一篇英文文章有N行,每行不超過(guò)40個(gè)字符。編寫程序統(tǒng)計(jì)出文章中英文單詞(一個(gè)單詞由若干個(gè)連續(xù)的非空格字符組成)的個(gè)數(shù)和空格的個(gè)數(shù)。程序如下:! label: 標(biāo)志變量,當(dāng)其值為0時(shí),表示一個(gè)單詞剛開(kāi)始;當(dāng)其值為1時(shí),表示正進(jìn)行一! 個(gè)單詞統(tǒng)計(jì)。! nw: 記錄英文單詞個(gè)數(shù)! nb: 記錄空格個(gè)數(shù)! n:記錄英文文章的行數(shù)2018/10/29program ex912 implicit nonecharacter(len=40):line int
8、eger: label,nw,nb,n,i,j,k nw=0;nb=0.print *,請(qǐng)輸入英文文章的行數(shù): read*,ndo i=1,nwrite(*,(1x,a,i2,a)請(qǐng)輸入英文文章第,i,行內(nèi)容: read (a),linelabel=0k=len_trim(line) do j=1,kif(line(j:j)= )then label=0; nb=nb+1else if(label=0)then label=1;nw=nw+1end if end do!去掉尾部空格的長(zhǎng)度=kend doprint “(英文單詞=,i4,5x,空格=,i4)”, nw, nbend ex1112
9、2018/10/210程序執(zhí)行示例:請(qǐng)輸入英文文章的行數(shù): 3請(qǐng)輸入英文文章第 1行內(nèi)容: I COME FROM CHINA請(qǐng)輸入英文文章第 2行內(nèi)容: MY NAME IS ZHZNC請(qǐng)輸入英文文章第 3行內(nèi)容: I AM 30英文單詞=11空格=82018/10/211例9.13 編寫一個(gè)子例程子程序sing,檢測(cè)去掉尾部空格的一字符串是否為“回文”(回文是指一個(gè)字符串左右對(duì)應(yīng)位置的字符相同)。例如字符串“tabcbat”和“2EE2”都是回文, 而“nkjhmkn”和“ASFA”都不是回文的。在主程序中調(diào)用子程序sing驗(yàn)證三個(gè)字符串是否為“回文”。程序如下:2018/10/212pr
10、ogram ex913 implicit nonecharacter(len=80):line character*4:char_blankinteger:i,j,n logical ldo n=1,3!i: 字符串line左字符對(duì)應(yīng)位置print *,輸入一個(gè)字符串: read (a),linej=len_trim(line) call sing(line,l,i,j)!去掉字符串line尾空格的長(zhǎng)度=jif(l)thenprint *,trim(line),是回文串elseprint *,trim(line),不是回文串print *,字符串左第,i,個(gè)字符是,char_blank(lin
11、e(i:i) print *,字符串右第,i,個(gè)字符是,char_blank(line(j:j)end ifend do end2018/10/213!字符串line是否為回文的子程序!l: line是否為回文(.true./.fause.)!i: 字符串line左位置!j: 去掉字符串line尾空格的長(zhǎng)度subroutine sing(line,l,i,j)character(len=80),intent(in):line logical,intent(out):l integer,intent(out):i integer,intent(inout):jl=.true. do i=1,j/2if(line(i:i)/=line(j:j)then l=.false.exit elsej=j-1 end if end doend2018/10/214! 判斷不是回文的相應(yīng)字符是空格還是字符的函數(shù)function char_blank(ch) result(ch_result)character(len=4):ch_result character(len=1),intent(in):ch if(ch= )thench_result
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公樓裝飾裝修施工監(jiān)理管理措施
- 2025至2030中國(guó)自動(dòng)顯微鏡行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國(guó)自動(dòng)地板清潔設(shè)備行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國(guó)脫脂酸奶粉行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 口腔健康與保健知識(shí)普及
- 2025至2030中國(guó)聚烯烴行業(yè)發(fā)展研究與產(chǎn)業(yè)戰(zhàn)略規(guī)劃分析評(píng)估報(bào)告
- 2025至2030中國(guó)聯(lián)名卡市場(chǎng)調(diào)研及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析報(bào)告
- 2025至2030中國(guó)羽絨被套行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國(guó)美孚潤(rùn)滑油脫蠟(MLDW)技術(shù)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國(guó)網(wǎng)絡(luò)連接IC卡智能水表行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 2025年7月新疆維吾爾自治區(qū)學(xué)業(yè)水平合格性考試歷史試題(含答案)
- 建立并優(yōu)化醫(yī)院的藥品管理體系
- 農(nóng)村農(nóng)資采購(gòu)與供應(yīng)長(zhǎng)期合作協(xié)議
- 反假幣培訓(xùn)課件
- 2025至2030中國(guó)電壓暫降治理行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 遼寧省2024年7月普通高中學(xué)業(yè)水平合格性考試化學(xué)試卷(含答案)
- 煤炭造價(jià)知識(shí)培訓(xùn)
- 2025屆遼寧省大連市高新區(qū)英語(yǔ)七年級(jí)第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含答案
- 腫瘤全程康復(fù)管理制度
- 對(duì)患者的健康教育制度
- 2025年酒店管理專業(yè)基礎(chǔ)知識(shí)考試試題及答案
評(píng)論
0/150
提交評(píng)論