C語言課件(字符串)_第1頁
C語言課件(字符串)_第2頁
C語言課件(字符串)_第3頁
C語言課件(字符串)_第4頁
C語言課件(字符串)_第5頁
已閱讀5頁,還剩49頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

字符串字符串字符串字符串與字符數組字符數組的定義和初始化字符串的輸入與輸出指針與字符串程序設計舉例C語言程序設計字符串字符串與字符數組C語言程序設計簡介字符串與字符數組在C語言中,字符串是存儲在字符數組中并用空字符(’\0’)結束的字符序列。字符串charname[20];charnames[30][20];…name字符串名,即字符數組名,就是該字符數組第一個元素的地址name[0]name[1]name[19]簡介字符串與字符數組字符串charname[20];…na字符數組的初始化給字符數組的全部元素賦初值字符串chara[5]={‘C’,’h’,’i’,’n’,’a’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘n’‘a’字符數組的初始化給字符數組的全部元素賦初值字符串chara字符數組的初始化給字符數組的部分元素賦初值第十一講字符串chara[5]={‘C’,’h’,’i’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘\0’‘\0’缺省的初值為‘\0’字符數組的初始化給字符數組的部分元素賦初值第十一講字符串c字符數組的初始化給全部元素賦初值時,可以不指定長度字符串chara[]={‘C’,’h’,’i’,’n’,’a’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘n’‘a’chara[5]={‘C’,’h’,’i’,’n’,’a’};字符數組的初始化給全部元素賦初值時,可以不指定長度字符串ch字符數組的初始化用字符串常量給字符數組賦初值字符串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’‘\0’來自字符串常量的結束字符‘\0’。字符數組的初始化用字符串常量給字符數組賦初值字符串char字符串的輸入輸出字符串的輸入輸出有幾種方式用格式輸入輸出函數逐個字符輸入輸出%c用格式輸入輸出函數作為整體輸入輸出%s用字符串輸入輸出函數作為整體輸入輸出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]);}字符串的輸入輸出用%c逐個字符的輸入輸出字符串#includ字符串的輸入輸出用%s實現字符串作為整體一次性的輸入輸出舉例(cw1102.c)字符串#include<stdio.h>#defineMAX5voidmain(){charc[MAX];printf("Inputc[%d]:\n",MAX);

scanf("%s",c);printf("Showc:\n");

printf("%s",c);}輸入和輸出項都是數組名在輸入時,空格、制表符和換行符都被作為字符串的分隔符,不被讀入在輸出時,一旦遇到‘\0’就結束字符串的輸入輸出用%s實現字符串作為整體一次性的輸入輸出字符字符串的輸入輸出用標準庫提供的字符串輸入輸出函數舉例(cw1103.c)字符串#include<stdio.h>#defineMAX5voidmain(){charc[MAX];printf("Inputc[%d]:\n",MAX);

gets(c);printf("Showc:\n");

puts(c);}在輸入時,換行符被作為數據的分隔符,不被讀入但是,空格和制表符可以被讀入puts()輸出字符串后自動換行字符串的輸入輸出用標準庫提供的字符串輸入輸出函數字符串#in指針與字符串字符串指針指向字符串(字符數組)字符指針。指針charstr[20]=“China”,*p=str;printf(“%s”,p);China\0char*p=“China”;printf(“%s”,p);C語言對字符串常量是按字符數組處理的。char*p;p=“China”;printf(“%s”,p);China\0p指針與字符串字符串指針指針charstr[20]=“Chi指針與字符串字符數組和指針比較指針charstr[5]=“wuhan”;char*p=“wuhan”;char*p;p=“wuhan”;charstr[5];str=“wuhan”;=≠錯對指針與字符串字符數組和指針指針charstr[5]=“w指針與字符串字符數組和指針比較指針char*p;scanf(“%s”,p);charstr[5],*p;p=str;scanf(“%s”,p);charstr[5];scanf(“%s”,str);錯對對在編譯時為字符串數組分配內存單元,有確定的地址雖然為字符指針變量分配了內存單元,但其值(地址)是不確定的,不可以使用指針與字符串字符數組和指針指針char*p;charst指針與字符串案例分析問題:字符串的拷貝。指針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指針與字符串案例分析指針China\0Chinese\0af字符和字符串標準庫函數字符函數:<ctype.h>字符串函數:<string.h>常用的函數strcat(字符數組名1,字符串2)strcpy(字符數組名1,字符串2)strcmp(字符串1,字符串2)strlen(字符串)strlwr(字符數組名)strupr(字符數組名)字符串轉換庫:<stdlib.h>把數字字符串轉換成整數和浮點數字符串字符串:字符串數組名或者字符串常量字符和字符串標準庫函數字符函數:<ctype.h>字符串字符案例分析(一)問題輸入一行字符,統計其中有多少個單詞,單詞之間用空格隔開。分析逐一檢測字符,遇到單詞的第一個字符就計數。單詞的第一個字符是一個非空格字符,且其前一個字符是空格。定義一個標記變量。記住當前字符的前一個字符(最近檢測的)是否是空格。字符串Iamfrom…\0案例分析(一)問題字符串Iamfrom…\0案例分析(一)設計定義標記變量word0最近檢測的字符是空格期待新單詞出現1最近檢測的字符不是空格正在讀單詞期待單詞的結束字符串i=0word=0num=0(c=s[i])!=‘\0’c==‘’word=0i++word==0word=1num++NYNYNY案例分析(一)設計字符串i=0(c=s[i])!=‘\0’c案例分析(一)源代碼(cw1104.c)字符串#include<stdio.h>voidmain(){charc,s[81];inti,num,word;printf("Inputasentence:\n");

gets(s);案例分析(一)源代碼(cw1104.c)字符串#includ案例分析(一)源代碼字符串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);}擴展:輸出這些單詞統計每個單詞出現的次數案例分析(一)源代碼字符串num=word=i=0;擴展案例分析(二)問題編程實現strcat()函數的功能。任意輸入兩個字符串,將它們連接成一個字符串。分析字符串xyz\0abc\0str1str2\0案例分析(二)問題字符串xyz\0abc\0str1str2案例分析(二)源代碼(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的長度要足夠大案例分析(二)源代碼(cw1105.c)字符串#includ案例分析(三)問題輸入一字符串,再輸入一個字符,要求程序將字符串中該字符刪去。分析字符串wuhanda\0wuhanda\0讀寫例:刪去空格wuhanda\0讀寫案例分析(三)問題字符串wuhanda\0wuhanda\0案例分析(三)源代碼(cw1106.c)字符串#include<stdio.h>voidmain(){

voiddelLetter(charstr[],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);}案例分析(三)源代碼(cw1106.c)字符串#includ案例分析(三)源代碼字符串voiddelLetter(charstr[],charc){inti,j;

for(i=j=0;str[i]!='\0';i++) if(str[i]!=c){ str[j]=str[i]; j++; }

str[j]='\0';}i是讀指針j是寫指針案例分析(三)源代碼字符串voiddelLetter(ch小結C語言用字符數組來保存字符串。C系統提供了較多的字符和字符串標準庫函數。字符串小結C語言用字符數組來保存字符串。字符串C語言課件(字符串)字符串字符串字符串字符串與字符數組字符數組的定義和初始化字符串的輸入與輸出指針與字符串程序設計舉例C語言程序設計字符串字符串與字符數組C語言程序設計簡介字符串與字符數組在C語言中,字符串是存儲在字符數組中并用空字符(’\0’)結束的字符序列。字符串charname[20];charnames[30][20];…name字符串名,即字符數組名,就是該字符數組第一個元素的地址name[0]name[1]name[19]簡介字符串與字符數組字符串charname[20];…na字符數組的初始化給字符數組的全部元素賦初值字符串chara[5]={‘C’,’h’,’i’,’n’,’a’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘n’‘a’字符數組的初始化給字符數組的全部元素賦初值字符串chara字符數組的初始化給字符數組的部分元素賦初值第十一講字符串chara[5]={‘C’,’h’,’i’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘\0’‘\0’缺省的初值為‘\0’字符數組的初始化給字符數組的部分元素賦初值第十一講字符串c字符數組的初始化給全部元素賦初值時,可以不指定長度字符串chara[]={‘C’,’h’,’i’,’n’,’a’};a[0]a[1]a[2]a[3]a[4]‘C’‘h’‘i’‘n’‘a’chara[5]={‘C’,’h’,’i’,’n’,’a’};字符數組的初始化給全部元素賦初值時,可以不指定長度字符串ch字符數組的初始化用字符串常量給字符數組賦初值字符串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’‘\0’來自字符串常量的結束字符‘\0’。字符數組的初始化用字符串常量給字符數組賦初值字符串char字符串的輸入輸出字符串的輸入輸出有幾種方式用格式輸入輸出函數逐個字符輸入輸出%c用格式輸入輸出函數作為整體輸入輸出%s用字符串輸入輸出函數作為整體輸入輸出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]);}字符串的輸入輸出用%c逐個字符的輸入輸出字符串#includ字符串的輸入輸出用%s實現字符串作為整體一次性的輸入輸出舉例(cw1102.c)字符串#include<stdio.h>#defineMAX5voidmain(){charc[MAX];printf("Inputc[%d]:\n",MAX);

scanf("%s",c);printf("Showc:\n");

printf("%s",c);}輸入和輸出項都是數組名在輸入時,空格、制表符和換行符都被作為字符串的分隔符,不被讀入在輸出時,一旦遇到‘\0’就結束字符串的輸入輸出用%s實現字符串作為整體一次性的輸入輸出字符字符串的輸入輸出用標準庫提供的字符串輸入輸出函數舉例(cw1103.c)字符串#include<stdio.h>#defineMAX5voidmain(){charc[MAX];printf("Inputc[%d]:\n",MAX);

gets(c);printf("Showc:\n");

puts(c);}在輸入時,換行符被作為數據的分隔符,不被讀入但是,空格和制表符可以被讀入puts()輸出字符串后自動換行字符串的輸入輸出用標準庫提供的字符串輸入輸出函數字符串#in指針與字符串字符串指針指向字符串(字符數組)字符指針。指針charstr[20]=“China”,*p=str;printf(“%s”,p);China\0char*p=“China”;printf(“%s”,p);C語言對字符串常量是按字符數組處理的。char*p;p=“China”;printf(“%s”,p);China\0p指針與字符串字符串指針指針charstr[20]=“Chi指針與字符串字符數組和指針比較指針charstr[5]=“wuhan”;char*p=“wuhan”;char*p;p=“wuhan”;charstr[5];str=“wuhan”;=≠錯對指針與字符串字符數組和指針指針charstr[5]=“w指針與字符串字符數組和指針比較指針char*p;scanf(“%s”,p);charstr[5],*p;p=str;scanf(“%s”,p);charstr[5];scanf(“%s”,str);錯對對在編譯時為字符串數組分配內存單元,有確定的地址雖然為字符指針變量分配了內存單元,但其值(地址)是不確定的,不可以使用指針與字符串字符數組和指針指針char*p;charst指針與字符串案例分析問題:字符串的拷貝。指針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指針與字符串案例分析指針China\0Chinese\0af字符和字符串標準庫函數字符函數:<ctype.h>字符串函數:<string.h>常用的函數strcat(字符數組名1,字符串2)strcpy(字符數組名1,字符串2)strcmp(字符串1,字符串2)strlen(字符串)strlwr(字符數組名)strupr(字符數組名)字符串轉換庫:<stdlib.h>把數字字符串轉換成整數和浮點數字符串字符串:字符串數組名或者字符串常量字符和字符串標準庫函數字符函數:<ctype.h>字符串字符案例分析(一)問題輸入一行字符,統計其中有多少個單詞,單詞之間用空格隔開。分析逐一檢測字符,遇到單詞的第一個字符就計數。單詞的第一個字符是一個非空格字符,且其前一個字符是空格。定義一個標記變量。記住當前字符的前一個字符(最近檢測的)是否是空格。字符串Iamfrom…\0案例分析(一)問題字符串Iamfrom…\0案例分析(一)設計定義標記變量word0最近檢測的字符是空格期待新單詞出現1最近檢測的字符不是空格正在讀單詞期待單詞的結束字符串i=0word=0num=0(c=s[i])!=‘\0’c==‘’word=0i++word==0word=1num++NYNYNY案例分析(一)設計字符串i=0(c=s[i])!=‘\0’c案例分析(一)源代碼(cw1104.c)字符串#include<stdio.h>voidmain(){charc,s[81];inti,num,word;printf("Inputasentence:\n");

gets(s);案例分析(一)源代碼(cw1104.c)字符串#includ案例分析(一)源代碼字符串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);}擴展:輸出這些單詞統計每個單詞出現的次數案例分析(一)源代碼字符串num=word=i=0;擴展案例分析(二)問題編程實現strcat()函數的功能。任意輸入兩個字符串,將它們連接成一個字符串。分析字符串xyz\0abc\0str1str2\0案例分析(二)問題字符串xyz\0abc\0str1str2案例分析(二)源代碼(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];

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論