




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
字符串字符串字符串與字符數(shù)組字符數(shù)組的定義和初始化字符串的輸入與輸出指針與字符串程序設(shè)計舉例C語言程序設(shè)計簡介字符串與字符數(shù)組在C語言中,字符串是存儲在字符數(shù)組中并用空字符(’\0’)結(jié)束的字符序列。字符串charname[20];charnames[30][20];…name字符串名,即字符數(shù)組名,就是該字符數(shù)組第一個元素的地址name[0]name[1]name[19]字符數(shù)組的初始化給字符數(shù)組的全部元素賦初值字符串chara[5]={‘C’,’h’,’i’,’n’,’a’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘n’‘a(chǎn)’字符數(shù)組的初始化給字符數(shù)組的部分元素賦初值第十一講字符串chara[5]={‘C’,’h’,’i’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘\0’‘\0’缺省的初值為‘\0’字符數(shù)組的初始化給全部元素賦初值時,可以不指定長度字符串chara[]={‘C’,’h’,’i’,’n’,’a’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘n’‘a(chǎn)’chara[5]={‘C’,’h’,’i’,’n’,’a’};字符數(shù)組的初始化用字符串常量給字符數(shù)組賦初值字符串chara[]={“China”};chara[]=“China”;chara[6]={“China”};chara[6]=“China”;a[0]a[1]a[2]a[3]a[4]a[5]‘C’‘h’‘i’‘n’‘a(chǎn)’‘\0’來自字符串常量的結(jié)束字符‘\0’。字符串的輸入輸出字符串的輸入輸出有幾種方式用格式輸入輸出函數(shù)逐個字符輸入輸出%c用格式輸入輸出函數(shù)作為整體輸入輸出%s用字符串輸入輸出函數(shù)作為整體輸入輸出gets()puts()字符串字符串的輸入輸出用%c逐個字符的輸入輸出舉例(cw1101.c)字符串#include<stdio.h>#defineMAX5voidmain(){
intn;charc[MAX];
printf("Input%dcharacters:\n",MAX);
for(n=0;n<MAX;n++)
scanf("%c",&c[n]);
printf("Showthe%dcharacters:\n",MAX);
for(n=0;n<MAX;n++)
printf("%c",c[n]);}字符串的輸入輸出用%s實現(xiàn)字符串作為整體一次性的輸入輸出舉例(cw1102.c)字符串#include<stdio.h>#defineMAX5voidmain(){charc[MAX];
printf("Input
c[%d]:\n",MAX);
scanf("%s",c);
printf("Show
c:\n");
printf("%s",c);}輸入和輸出項都是數(shù)組名在輸入時,空格、制表符和換行符都被作為字符串的分隔符,不被讀入在輸出時,一旦遇到‘\0’就結(jié)束字符串的輸入輸出用標準庫提供的字符串輸入輸出函數(shù)舉例(cw1103.c)字符串#include<stdio.h>#defineMAX5voidmain(){charc[MAX];
printf("Input
c[%d]:\n",MAX);
gets(c);
printf("Show
c:\n");
puts(c);}在輸入時,換行符被作為數(shù)據(jù)的分隔符,不被讀入但是,空格和制表符可以被讀入puts()輸出字符串后自動換行指針與字符串字符串指針指向字符串(字符數(shù)組)字符指針。指針charstr[20]=“China”,*p=str;printf(“%s”,p);China\0char*p=“China”;printf(“%s”,p);C語言對字符串常量是按字符數(shù)組處理的。char*p;p=“China”;printf(“%s”,p);China\0p指針與字符串字符數(shù)組和指針比較指針charstr[5]=“wuhan”;char*p=“wuhan”;char*p;p=“wuhan”;charstr[5];str=“wuhan”;=≠錯對指針與字符串字符數(shù)組和指針比較指針char*p;scanf(“%s”,p);charstr[5],*p;p=str;scanf(“%s”,p);charstr[5];scanf(“%s”,str);錯對對在編譯時為字符串數(shù)組分配內(nèi)存單元,有確定的地址雖然為字符指針變量分配了內(nèi)存單元,但其值(地址)是不確定的,不可以使用指針與字符串案例分析問題:字符串的拷貝。指針China\0Chinese\0afrmbtoChina\0e\0bvoidstrCopy(char*frm,char*to){while((*to=*frm)!='\0'){
frm++;to++;}}voidmain(){char*a="China";char*b="Chinese";
strCopy(a,b);
printf("%s",b);}China字符和字符串標準庫函數(shù)字符函數(shù):<ctype.h>字符串函數(shù):<string.h>常用的函數(shù)strcat(字符數(shù)組名1,字符串2)strcpy(字符數(shù)組名1,字符串2)strcmp(字符串1,字符串2)strlen(字符串)strlwr(字符數(shù)組名)strupr(字符數(shù)組名)字符串轉(zhuǎn)換庫:<stdlib.h>把數(shù)字字符串轉(zhuǎn)換成整數(shù)和浮點數(shù)字符串字符串:字符串數(shù)組名或者字符串常量案例分析(一)問題輸入一行字符,統(tǒng)計其中有多少個單詞,單詞之間用空格隔開。分析逐一檢測字符,遇到單詞的第一個字符就計數(shù)。單詞的第一個字符是一個非空格字符,且其前一個字符是空格。定義一個標記變量。記住當前字符的前一個字符(最近檢測的)是否是空格。字符串Iamfrom…\0案例分析(一)設(shè)計定義標記變量word0最近檢測的字符是空格期待新單詞出現(xiàn)1最近檢測的字符不是空格正在讀單詞期待單詞的結(jié)束字符串i=0word=0num=0(c=s[i])!=‘\0’c==‘’word=0i++word==0word=1num++NYNYNY案例分析(一)源代碼(cw1104.c)字符串#include<stdio.h>voidmain(){charc,s[81];
inti,num,word;
printf("Inputasentence:\n");
gets(s);案例分析(一)源代碼字符串
num=word=i=0;while((c=s[i])!='\0'){if(c=='')word=0;elseif(word==0){word=1;num++;}i++;}
printf("Thereare%dwordsinthissentence.\n",num);}擴展:輸出這些單詞統(tǒng)計每個單詞出現(xiàn)的次數(shù)案例分析(二)問題編程實現(xiàn)strcat()函數(shù)的功能。任意輸入兩個字符串,將它們連接成一個字符串。分析字符串xyz\0abc\0str1str2\0案例分析(二)源代碼(cw1105.c)字符串#include<stdio.h>voidmyStrcat(charstr1[],charstr2[]){
inti,j;
for(i=0;str1[i]!='\0';i++);
for(j=0;str2[j]!='\0';i++,j++)
str[i]=str2[j];
str[i]='\0';}voidmain(){charstr1[161],str2[81];
printf("Inputtwostrings:\n");gets(str1);gets(str2);
myStrcat(str1,str2);
printf("\nNow,yougetanewstring:\n%s\n",str1);}str1的長度要足夠大案例分析(三)問題輸入一字符串,再輸入一個字符,要求程序?qū)⒆址性撟址麆h去。分析字符串wuhanda\0wuhanda\0讀寫例:刪去空格wuhanda\0讀寫案例分析(三)源代碼(cw1106.c)字符串#include<stdio.h>voidmain(){
voiddelLetter(char
str[],charc);charstr[81],c;
printf("Inputastring:\n");gets(str);
printf("Inputaletter:\n");c=getchar();
delLetter(str,c);
printf("Deleteall\'%c\'fromthestring.\n",c);
printf("Thestring:\n");
puts(str);}案例分析(三)源
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社交游戲的市場現(xiàn)狀及用戶行為研究
- 動物探索小班班級工作計劃
- 牌樓拆除合同范本
- 傳染病科醫(yī)療服務(wù)質(zhì)量提升總結(jié)計劃
- 科技創(chuàng)新項目從構(gòu)思到實施的完整流程
- 親子讀書學期班級閱讀親子計劃
- 反恐怖主義法律制度與實務(wù)考核試卷
- 科技與教育的深度融合發(fā)展
- 現(xiàn)代建筑設(shè)計與城市文化傳承
- 科技發(fā)展與現(xiàn)代生活質(zhì)量的提升
- 新漢語水平考試(HSK6級)真題
- 2025年安徽省合肥市中考數(shù)學模擬試卷(附答案解析)
- 數(shù)字孿生與光伏儲能集成
- 2025屆高考語文復習:補寫語句+課件
- Siemens WinCC:WinCC趨勢圖與歷史數(shù)據(jù)技術(shù)教程.Tex.header
- 保護和傳承中國傳統(tǒng)文化遺產(chǎn)閱讀題答案
- 人教版生物八年級下冊全冊教學課件
- 四川省高職單招汽車類《汽車文化》復習備考試題庫(濃縮500題)
- 養(yǎng)牛購料購銷合同范本
- 衛(wèi)生健康大數(shù)據(jù)底座建設(shè)需求
- 勞動合同范本1997
評論
0/150
提交評論