版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年親子協(xié)議模板
- 2025年增資協(xié)議合同條款
- 2025年度個(gè)人承包工程勞務(wù)合同模板4篇
- 2025年合作環(huán)境科學(xué)書籍出版協(xié)議
- 攪拌站項(xiàng)目合作開發(fā)合同(二零二五年)3篇
- 2025年度環(huán)保認(rèn)證木地板采購與施工合同4篇
- 2025年度鄉(xiāng)村旅游資源承包經(jīng)營權(quán)轉(zhuǎn)讓合同4篇
- 2025年度股權(quán)質(zhì)押擔(dān)保與文化產(chǎn)業(yè)融合發(fā)展合同
- 二零二五年度足療養(yǎng)生館加盟投資協(xié)議
- 2025年度美容院美容師服務(wù)提成勞務(wù)合同模板
- 2024-2030年中國海泡石產(chǎn)業(yè)運(yùn)行形勢及投資規(guī)模研究報(bào)告
- 動(dòng)物醫(yī)學(xué)類專業(yè)生涯發(fā)展展示
- 2024年同等學(xué)力申碩英語考試真題
- 消除“艾梅乙”醫(yī)療歧視-從我做起
- 非遺文化走進(jìn)數(shù)字展廳+大數(shù)據(jù)與互聯(lián)網(wǎng)系創(chuàng)業(yè)計(jì)劃書
- 2024山西省文化旅游投資控股集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 科普知識(shí)進(jìn)社區(qū)活動(dòng)總結(jié)與反思
- 加油站廉潔培訓(xùn)課件
- 現(xiàn)金日記賬模板(帶公式)
- 消化內(nèi)科??票O(jiān)測指標(biāo)匯總分析
- 混凝土結(jié)構(gòu)工程施工質(zhì)量驗(yàn)收規(guī)范
評(píng)論
0/150
提交評(píng)論