計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課件:字符串_第1頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課件:字符串_第2頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課件:字符串_第3頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課件:字符串_第4頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課件:字符串_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

字符串本章內(nèi)容第一節(jié)字符數(shù)組第二節(jié)字符串的應(yīng)用(1)第三節(jié)字符串類第四節(jié)字符串的應(yīng)用(2)

第一節(jié)字符數(shù)組一、字符數(shù)組

數(shù)值數(shù)組用于存儲(chǔ)數(shù)值類型(整數(shù)、浮點(diǎn)數(shù)等)的數(shù)據(jù)。

字符數(shù)組則用于存儲(chǔ)字符型的數(shù)據(jù),其數(shù)據(jù)元素是一個(gè)一個(gè)的字符。1、字符數(shù)組的定義

char字符數(shù)組名[常量表達(dá)式];例如:charc[6];

字符數(shù)組名為c,包含6個(gè)數(shù)組元素,即6個(gè)字符。2、字符數(shù)組的初始化char字符數(shù)組名[常量表達(dá)式]={字符1,字符2,字符3…,'\0'};例如:charc[5]={'v','s','c','+','+'}; //數(shù)組長度等于5字符數(shù)組的存儲(chǔ)形式3、字符數(shù)組的賦值與引用逐個(gè)字符賦給數(shù)組中各元素。例如:

charc[5]; c[0]='v';c[1]='s';c[2]='c';c[3]='+';c[4]='+';二、用字符數(shù)組處理字符串1、字符串字符串是用一對雙引號(hào)括起來的一組字符的有序集合,系統(tǒng)在字符串的末尾自動(dòng)增加一個(gè)字符串結(jié)束符'\0'??紤]到字符串結(jié)束符,在定義字符數(shù)組時(shí)應(yīng)估計(jì)實(shí)際字符串長度,保證數(shù)組長度始終大于字符串實(shí)際長度。char字符數(shù)組名[最大字符數(shù)+1];2、整體初始化字符數(shù)組存儲(chǔ)字符串時(shí),可以用字符串常量整體賦值,char字符數(shù)組名[常量表達(dá)式]=字符串;char字符數(shù)組名[常量表達(dá)式]={字符串};char字符數(shù)組名[]=字符串;char字符數(shù)組名[]={字符串};例如:charc[6]="vsc++"; //字符串結(jié)尾自動(dòng)加'\0'charb[6]={"vsc++"}; //字符串外加{}chara[]="vsc++"; //數(shù)組長度可以不指定chard[]={"vsc++"};字符串的存儲(chǔ)形式字符串與字符數(shù)組不是完全等價(jià)的3、整體輸入輸出(1)使用標(biāo)準(zhǔn)輸入輸出流cin和coutcin有一個(gè)問題:不能提取字符串中空格后面的內(nèi)容。(2)使用gets_s()函數(shù)輸入字符串gets_s(字符數(shù)組名);可以輸入帶有空格的字符串#include<iostream>usingnamespacestd;intmain(){ charc[30]; inti; gets_s(c); for(i=0;c[i]!='\0';i++) //不是結(jié)束符就繼續(xù)遍歷

cout<<c[i]<<""; //字符之間空格隔開

cout<<endl; //最后輸出換行

return0;}例8-1輸入字符串,再逐一輸出字符串。三、字符串處理函數(shù)例如:

charc[20]="vsc++"; cout<<strlen(c); //字符長度為51、求字符串的長度strlen(str)求字符串str的有效字符個(gè)數(shù),不包括'\0'在內(nèi)。2、字符串賦值strcpy_s(str1,str2)將字符串str2賦值到字符串str1中。3、字符串連接strcat_s(str1,str2)在字符串str1后面連接字符串str2,字符串str2不變。#include<iostream>usingnamespacestd;intmain(){ chara[100]="ThiscoursewillhelpyoulearningC++basics"; charb[30]="anditgivesyouhands."; charc[100]; intslen1,slen2; slen1=strlen(a); //求字符串a(chǎn)長度

cout<<slen1<<endl; slen2=strlen(b); //求字符串b長度

cout<<slen2<<endl;

strcpy_s(c,a); //賦值字符串a(chǎn)到字符串c cout<<c<<endl; strcat_s(a,b); //在字符串a(chǎn)后面連接字符串b cout<<a<<endl; return0;}例8-2:字符串處理函數(shù)應(yīng)用實(shí)例。第二節(jié)字符串的應(yīng)用(1)程序設(shè)計(jì)中經(jīng)常會(huì)處理字符串,例如統(tǒng)計(jì)字符串中的字符數(shù);在字符串中查找單詞;字符串加密;字符串大小寫轉(zhuǎn)換等。一、統(tǒng)計(jì)字符個(gè)數(shù)例8-3:從鍵盤輸入一行字符(字符串長度不超過100),分別統(tǒng)計(jì)出其中英文字符、數(shù)字字符和其他字符的個(gè)數(shù)。#include<iostream>usingnamespacestd;intmain(){ charc[100]; inti,zf=0,sz=0,qt=0; gets_s(c); for(i=0;c[i]!='\0';i++) { //判斷英文字符

if((c[i]>='a'&&c[i]<='z')||(c[i]>='A'&&c[i]<='Z')) zf=zf+1; elseif(c[i]>='0'&&c[i]<='9') //判斷數(shù)字字符

sz=sz+1; else qt=qt+1; } cout<<"字符個(gè)數(shù):"<<zf<<endl; cout<<"數(shù)字個(gè)數(shù):"<<sz<<endl; cout<<"其他個(gè)數(shù):"<<qt<<endl; return0;}二、字符串加密例8-4:在情報(bào)傳遞過程中,為了防止情報(bào)被截獲,往往需要對情報(bào)用一定的方式加密,簡單的加密算法雖然不足以完全避免情報(bào)被破譯,但仍然能防止情報(bào)被輕易地識(shí)別。凱撒加密法是一種簡單的加密方法,加密規(guī)則是:將每個(gè)字母用字母表中排在其后面的第3個(gè)字母的大寫形式來替換(如字母d或D就用G來替換);對于字母表中最后的三個(gè)字母,可將字母表看成是首尾銜接的(如字母y或Y用B來替換);字符串中其他非字母符號(hào)不做改變。#include<iostream>usingnamespacestd;intmain(){ constintN=1000; //定義常變量N charc[N]; //N是字符數(shù)組的長度

gets_s(c); for(inti=0;c[i]!='\0';i++) { //如果是小寫英文字符,則轉(zhuǎn)換為大寫字符

if(c[i]>='a'&&c[i]<='z') c[i]=c[i]-32; //如果是大寫英文字符,后移3個(gè)字符;其他字符不變

if(c[i]>='A'&&c[i]<='Z') c[i]=(c[i]+3-'A')%26+'A'; } cout<<c<<endl; return0;}第三節(jié)字符串類一種來自C語言,常被稱為C風(fēng)格字符串,即用字符數(shù)組存儲(chǔ)和處理字符串;C++處理字符串的方式有兩種:另一種是C++的風(fēng)格,使用字符串類。字符串類string屬于標(biāo)準(zhǔn)C++語言類庫,若要在程序中使用字符串類,在源程序最前面包含頭文件: #include<string>一、字符串變量的定義例如:strings1,s2;定義字符串變量s1和s2,并且將默認(rèn)值賦給s1和s2,默認(rèn)值是"",即空字符串。語法格式:string字符串變量1,字符串變量2,…;二、字符串變量的初始化例如:strings1="IloveC++"; //定義的同時(shí)賦初值字符串常量以'\0'作為結(jié)束符,但將字符串常量存放到字符串變量中時(shí),只存放字符串本身而不包括'\0'。語法格式:string字符串變量=字符串;三、字符串變量的賦值例如:strings1,s2;s1="IloveC++"; //用賦值語句對它賦予一個(gè)字符串常量s2=s1; //用一個(gè)字符串變量給另一個(gè)字符串變量賦值語法格式:字符串變量=字符串;四、字符串變量的輸入輸出strings1;cin>>s1; //cin遇到空格即停止cout<<s1;1、字符串變量得輸入輸出可以用cin和cout。2、使用getline()函數(shù)輸入有空格的字符串。strings1;getline(cin,s1) //以回車符作為結(jié)束的標(biāo)志cout<<s1;五、字符串變量的常用操作1、字符串拼接運(yùn)算:使用“+”或“+=”運(yùn)算符2、字符串關(guān)系運(yùn)算:使用關(guān)系運(yùn)算符進(jìn)行比較3、獲取字符串的長度:用函數(shù)length()或size()4、向字符串指定位置插入元素:insert()函數(shù)5、刪除字符串中的元素:erase()函數(shù)6、查找字符串中的子串:find()函數(shù)和rfind()函數(shù)第四節(jié)字符串的應(yīng)用(2)一、簡單的密碼驗(yàn)證系統(tǒng)例8-5系統(tǒng)內(nèi)部預(yù)設(shè)的密碼是“helloc”,編寫密碼驗(yàn)證系統(tǒng)。#include<iostream>#include<string>usingnamespacestd;intmain(){ strings; while(1) { cout<<"請輸入密碼:"; getline(cin,s); if(s=="helloc") //用“==”比較字符串

{ cout<<"密碼正確,歡迎使用"<<endl; break; } else cout<<"密碼錯(cuò)誤,重新輸入:"<<endl; } return0;}二、最后一個(gè)單詞的長度例8-6:輸出字符串最后一個(gè)單詞的長度。單詞之間空

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論