![C++第十課字符串_第1頁(yè)](http://file4.renrendoc.com/view/16fcaa09c36c5631ad65592e58234716/16fcaa09c36c5631ad65592e582347161.gif)
![C++第十課字符串_第2頁(yè)](http://file4.renrendoc.com/view/16fcaa09c36c5631ad65592e58234716/16fcaa09c36c5631ad65592e582347162.gif)
![C++第十課字符串_第3頁(yè)](http://file4.renrendoc.com/view/16fcaa09c36c5631ad65592e58234716/16fcaa09c36c5631ad65592e582347163.gif)
![C++第十課字符串_第4頁(yè)](http://file4.renrendoc.com/view/16fcaa09c36c5631ad65592e58234716/16fcaa09c36c5631ad65592e582347164.gif)
![C++第十課字符串_第5頁(yè)](http://file4.renrendoc.com/view/16fcaa09c36c5631ad65592e58234716/16fcaa09c36c5631ad65592e582347165.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第10課字符串1
例charch[5]={‘H’,’e’,’l’,’l’,’o’};ch[0]Hello逐個(gè)字符賦值ch[1]ch[2]ch[3]ch[4]例charch[5]={‘B’,’o’,’y’};ch[0]Boy\0\0逐個(gè)字符賦值ch[1]ch[2]ch[3]ch[4]
例charch[6]={“Hello”};charch[6]=“Hello”;charch[]=“Hello”;用字符串常量ch[0]Helloch[1]ch[2]ch[3]ch[4]\0ch[5]
例charch[5]=“Boy”;ch[0]Boy\0\0用字符串常量ch[1]ch[2]ch[3]ch[4]字符數(shù)組P221定義字符數(shù)組的初始化逐個(gè)字符賦值用字符串常量字符數(shù)組的引用例charc[10],ch[3][4];2字符數(shù)組的輸入與輸出chara[100];cin>>a;cout<<a[2];輸入:abc
輸出:c輸入:abc
輸出:空格?因?yàn)檫@時(shí)a數(shù)組只能取“a”,空格后面的不能讀入。因此,字符數(shù)組的讀入與整數(shù)類似,也是以空格作為分隔的。上例中如果改成cin>>a>>b;則b數(shù)組的值是“bc”3自動(dòng)跳過空格程序中有下列語句:
charstr1[5],str2[5],str3[5];
cin>>str1>>str2>>str3;
運(yùn)行時(shí)輸入數(shù)據(jù):
Howareyou?內(nèi)存中變量狀態(tài)如下:
str1:How\0str2:are\0str3:you?\044空格初始化輸入#include<iostream>usingnamespacestd;intmain(){charc[10]={'I','','a','m','','a','','b','o','y'};
inti;for(i=0;i<10;i++)
cout<<c[i];//或者不用循環(huán),直接
cout<<c;return0;}運(yùn)行結(jié)果:
Iamaboy5charc[10];
inti;for(i=0;i<10;i++)
c[i]=getchar();//一次只能讀一個(gè)變量
cout<<c;注意:必須先知道長(zhǎng)度,或有控制標(biāo)志。頭文件中必須有:#include<cstdlib>輸入:123456789輸出:123456789空格輸入(知道長(zhǎng)度)6空格輸入(不知長(zhǎng)度)例2:輸入一行字符,不超過200個(gè),包含若干個(gè)單詞。約定相鄰兩個(gè)單詞用空格隔開,編程統(tǒng)計(jì)單詞的個(gè)數(shù)。樣例:輸入:Todayis
aniceday輸出:5輸入的不知道長(zhǎng)度,只能使用字符串輸入。#include<cstring>頭文件中先打開字符串定義stringa;//a長(zhǎng)度不限,與P語言不一樣
cin>>a;//a[0]是輸入的第一個(gè)字符但只能讀入第一個(gè)單詞,直接讀入也是以空格作為分隔。7#include<iostream>usingnamespacestd;#include<cstring>intmain(){stringst;
inti,L,num;
getline(cin,st);//getling
讀入一行字符串,包含空格
i=0;L=st.length();num=0;while(i<L){while(st[i]=='')i++;if(i<L)num++;while(st[i]!=''&&i<L)i++;}
cout<<num<<endl;return0;}8更快的方法#include<iostream>#include<cstring>usingnamespacestd;intnum;intmain(){stringst;while(cin>>st)num++;
cout<<num<<endl;return0;}文件操作的時(shí)候正常讀。鍵盤輸入的時(shí)候以ctrl+Z結(jié)束9string的操作加法:stringst;
getline(cin,st);
st=’’+st;//st前面多一個(gè)空格
st=st+st;//復(fù)制一遍但st=‘a(chǎn)bc’+st;是錯(cuò)誤的,可以寫成st=“abc”+st;操作作用返回值例子字符串.length()求字符串的長(zhǎng)度整型s=“123456789”;l=s.length();{l的值為9}字符串.substr(w,k)復(fù)制字符串中從w開始的k位字符串s=“123456789”;s1=s.substr(0,5);{s1的值為“12345”}10操作作用返回值例子字符串.find(str)在字符串中查找字符串str的位置整型s=“123456789”;l=s.find(“34”);{l的值為2}字符串.swap(str)將字符串與str交換無s=“123”;s1=“456”s.swap(s1);{s1的值為“123”,s的值是“456”}插入字符串.insert(x,str)strings1="12",s2="345";s1.insert(1,s2);//從s1的1號(hào)位開始插入s2
cout<<s1;//s2=“13452”11刪除字符串.erase(x,n)從x位開始的n個(gè)字符
strings1="12345";s1.erase(2,2);//從2號(hào)位開始的兩個(gè)字符
cout<<s1;//輸出12512字符數(shù)組轉(zhuǎn)字符串直接轉(zhuǎn)chara[100];stringb;b=a;13字符串轉(zhuǎn)字符數(shù)組不可直接轉(zhuǎn),用循環(huán)轉(zhuǎn)一下chara[100];stringb;for(i=0;i<b.length();i++)a[i]=b[i];14將string轉(zhuǎn)成int
st:string;
cin>>st;方法一:
inti=atoi(st.c_str());方法二:sscanf(st.c_str(),"%d",&i);15字符數(shù)組轉(zhuǎn)成整數(shù)#include<cstdio>#include<cstring>#include<iostream>usingnamespacestd;intmain(){chars1[100]="111",s2[100]="222";int
a,b;sscanf(s1,"%d",&a);//sscanf()的作用是從字符數(shù)組中讀入sscanf(s2,"%d",&b); cout<<a+b<<endl;return0;}輸出:333轉(zhuǎn)實(shí)數(shù)的方法:doublec;sscanf(s1,"%lf",&c);16string轉(zhuǎn)int
通用程序法#include<iostrseam>#include<cstring>usingnamespacestd;intmain(){stringst;
int
i,j,n,s=0;
cin>>st;j=st.length();for(i=0;i<j;i++){n=st[i]-48;s=s*10+n;}
cout<<s;return0;}17將int
轉(zhuǎn)成string,相當(dāng)麻煩#include<iostream>#include<cstring>#include<cstdlib>#include<strstream>usingnamespacestd;intmain(){strstream
ss;stringst;
intn;
cin>>n;
ss<<n;
ss>>st;
cout<<st<<endl;return0;}18int轉(zhuǎn)string通用程序法
stringst=“”;//初始化,取空
intn;
cin>>n;charch;//ch用來保存每位數(shù)字,轉(zhuǎn)成字符型
while(n>0){
inta=n%10;//分解出個(gè)位數(shù)字
n=n/10;
ch=48+a;//ch取數(shù)字的ASCII碼,自動(dòng)轉(zhuǎn)成字符
st=ch+st;}
cout<<st;19整數(shù)轉(zhuǎn)字符型數(shù)組和字符串#include<cstdio>#include<string>#include<iostream>usingnamespacestd;intmain(){chars1[100];chars2[100];stringst1,st2;inta=123,b=456;sprintf(s1,"%d",a);//產(chǎn)生"123"存在字符型數(shù)組中sprintf(s2,"%d",b);//產(chǎn)生"456" st1=s1;st2=s2; //字符型數(shù)組轉(zhuǎn)到字符串中cout<<st1+st2<<endl;return0;}輸出:123456
整數(shù)與字符型數(shù)組能直接轉(zhuǎn)換20題一:?jiǎn)栴}:加法算式(P1211)輸入:僅一行,符合格式A+B,0<=A,B<=60000(A,B為整數(shù))
文件不含空格,數(shù)字開頭無多余的零。輸出:僅一行,即A與B的和。樣例:輸入
113+355
輸出
468上機(jī)作業(yè)思路:1、字符串輸入。2、找到加號(hào)的位置。3、將加號(hào)左邊、右邊分解出來。4、輸出加法的值。21另一巧妙的方法scanf(“%d+%d”,&a,&b);printf(“%d”,a+b);22題二數(shù)字反轉(zhuǎn)
(NOIP2011初中組第1題)P1100
給定一個(gè)整數(shù),請(qǐng)將該數(shù)各個(gè)位上數(shù)字反轉(zhuǎn)得到一個(gè)新數(shù)。新數(shù)也應(yīng)滿足整數(shù)的常見形式,即除非給定的原數(shù)為零,否則反轉(zhuǎn)后得到的新數(shù)的最高位數(shù)字不應(yīng)為零(參見樣例2)?!据斎搿抗?行,一個(gè)整數(shù)N?!据敵觥恳粋€(gè)整數(shù),表示反轉(zhuǎn)后的新數(shù)?!緲永?】reverse.in
123reverse.out321【樣例2】Reverse.in-380reverse.out-83【數(shù)據(jù)范圍】-1,000,000,000≤N≤1,000,000,000。提示:先處理負(fù)數(shù)。23題三:數(shù)字統(tǒng)計(jì)(NOIP2010初中組第1題)P1113【問題描述】
請(qǐng)統(tǒng)計(jì)某個(gè)給定范圍L---R的所有整數(shù)中,數(shù)字2出現(xiàn)的次數(shù)。比如給定范圍2---22,數(shù)字2在數(shù)2中出現(xiàn)了1次,在數(shù)12中出現(xiàn)1次,在數(shù)20中出現(xiàn)1次,在數(shù)21中出現(xiàn)1次,在數(shù)22中出現(xiàn)2次,所以數(shù)字2在該范圍內(nèi)一共出現(xiàn)了6次?!据斎搿抗?行,為兩個(gè)正整數(shù)L和R,之間用一個(gè)空格隔開?!据敵觥抗?行,表示數(shù)字2出現(xiàn)的次數(shù)?!緲永縯wo.in
222two.out6【數(shù)據(jù)范圍】1≤L≤R≤10000。24題四:變態(tài)的等式P1212
輸入一行一個(gè)等式,要求在左邊插入一個(gè)加號(hào),使等式成立,如果沒有答案則輸出“No"(不含引號(hào)).樣例:輸入
1122=33
輸出
11+22=33數(shù)據(jù)范圍:所有的數(shù)不超過2.1*10^925題五.統(tǒng)計(jì)單詞數(shù)
P1107
給定一個(gè)單詞,請(qǐng)你輸出它在給定的文章中出現(xiàn)的次數(shù)和第一次出現(xiàn)的位置。注意:匹配單詞時(shí),不區(qū)分大小寫,但要求完全匹配,即給定單詞必須與文章中的某一獨(dú)立單詞在不區(qū)分大小寫的情況下完全相同(參見樣例1),如果給定單詞僅是文章中某一單詞的一部分則不算匹配(參見樣例2)?!据斎搿枯斎牍?行。第1行為一個(gè)字符串,其中只含字母,表示給定單詞;第2行為一個(gè)字符串,其中只可能包含字母和空格,表示給定的文章?!据敵觥恐挥幸恍?,如果在文章中找到給定單詞則輸出兩個(gè)整數(shù),兩個(gè)整數(shù)之間用一個(gè)空格隔開,分別是單詞在文章中出現(xiàn)的次數(shù)和第一次出現(xiàn)的位置(即在文章中第一次出現(xiàn)時(shí),單詞首字母在文章中的位置,位置從0開始);如果單詞在文章中沒有出現(xiàn),則直接輸出一個(gè)整數(shù)-1?!緲永?】stat.in
Totobeornottobeisaquestionstat.out20【樣例1說明】輸出結(jié)果表示給定的單詞To在文章中出現(xiàn)兩次,第一次出現(xiàn)的位置為0。【樣例2】stat.in
toDidtheOttomanEmpireloseitspoweratthattimestat.out-1【樣例2說明】表示給定的單詞to在文章中沒有出現(xiàn),輸出整數(shù)-1。【數(shù)據(jù)范圍】1≤單詞長(zhǎng)度≤10。1≤文章長(zhǎng)度≤1,000,000。算法:1、輸入第一行,將大寫字母轉(zhuǎn)成小寫字母。2、輸入第二行,將大寫字母轉(zhuǎn)成小寫字母。3、將第二行前面與后面插入一個(gè)空格。4、查找第二行中第一行出現(xiàn)的次數(shù)。
(1)相同的單詞必須前后均是空格。(2)統(tǒng)計(jì)相同的個(gè)數(shù),還要記下第一次出現(xiàn)的位置。5、輸出26字符串?dāng)?shù)組字符串相當(dāng)于一維數(shù)組
stringst;st=“abc”;
則有數(shù)組st,st[0]=‘a(chǎn)’st[1]=‘b’st[2]=‘c’字符串?dāng)?shù)組相當(dāng)于二維數(shù)組
stringst[10];st[0]=“ab”;st[1]=“cd”;st[2]=“ef”;
請(qǐng)問:字符’c’的表示方法是什么?st[1][0]=‘c’27
求最大數(shù)設(shè)有n個(gè)正整數(shù)(n≤20),將它們聯(lián)接成一排,組成一個(gè)最大的多位整數(shù)。例如:n=3時(shí),3個(gè)整數(shù)13,312,343聯(lián)接成的最大整數(shù)為:34331213又如:n=4時(shí),4個(gè)整數(shù)7,13,4,246聯(lián)接成的最大整數(shù)為:7424613程序輸入:nn個(gè)數(shù)程序輸出:聯(lián)接成的多位數(shù)樣例:輸入:
313312343
輸出:
34331213
28#include<iostream>#include<cstring>usingnamespacestd;intmain(){
intn;strings[20];
cin>>n;for(inti=1;i<=n;i++)
cin>>s[i];for(inti=1;i<=n-1;i++)for(intj=i+1;j<=n;j++)if(s[i]+s[j]<s[j]+s[i])
swap(s[i],s[j]);for(inti=1;i<=n;i++)
cout<<s[i];return0;}29題六:學(xué)生成績(jī)(P1223)【問題描述】給出若干
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣播電視接收設(shè)備的緊急信息發(fā)布系統(tǒng)考核試卷
- 塑膠跑道施工中的質(zhì)量控制體系構(gòu)建考核試卷
- 儀器環(huán)境適應(yīng)性測(cè)試與評(píng)價(jià)考核試卷
- 2025年01月云南省大理州永平縣審計(jì)局審計(jì)輔助性工作人員公開招聘(1人)筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 生態(tài)農(nóng)業(yè)在醫(yī)療領(lǐng)域的實(shí)踐與探索
- 屠宰場(chǎng)屠宰工藝創(chuàng)新與節(jié)能減排考核試卷
- 現(xiàn)代化辦公室技術(shù)與未來農(nóng)場(chǎng)的融合之路探討
- 成人高考生物進(jìn)化與生態(tài)平衡考核試卷
- 土壤污染修復(fù)應(yīng)急預(yù)案與處理考核試卷
- 2025-2030年地域特色雜糧粉系列行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 讀《教師成長(zhǎng)力-專業(yè)成長(zhǎng)圖譜》有感
- 自動(dòng)化儀表工程施工及質(zhì)量驗(yàn)收規(guī)范
- 邵陽市職工勞動(dòng)能力鑒定表
- 胎膜早破的護(hù)理PPT
- GB/T 308.1-2013滾動(dòng)軸承球第1部分:鋼球
- 新員工入場(chǎng)安全教育培訓(xùn)課件
- 優(yōu)秀員工榮譽(yù)證書模板
- 2023機(jī)械工程師考試試題及答案
- 精選裝飾工程室內(nèi)拆除專項(xiàng)施工方案
- 2022年二年級(jí)生命安全教育教案
- 豐田汽車戰(zhàn)略規(guī)劃與戰(zhàn)略管理體系研究(2021)
評(píng)論
0/150
提交評(píng)論