本章學(xué)習(xí)重點課件_第1頁
本章學(xué)習(xí)重點課件_第2頁
本章學(xué)習(xí)重點課件_第3頁
本章學(xué)習(xí)重點課件_第4頁
本章學(xué)習(xí)重點課件_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第九章字串1第九章字串1本章學(xué)習(xí)重點9-1字串的基本架構(gòu)9-2字串的輸入及輸出9-3字串的函數(shù)2本章學(xué)習(xí)重點9-1字串的基本架構(gòu)29-1-1字串的定義字串(String)在C語言中使用來儲存一串字元的一種資料結(jié)構(gòu)比字元陣列多出一個控制字元『\0』,用來表示字串的結(jié)束

字串

chara[]=”String”;chara[]={‘S’,’t’,’r’,’i’,’n’,’g’,’\0’};字元陣列

charb[]={‘S’,’t’,’r’,’i’,’n’,’g’};39-1-1字串的定義字串(String)39-1-2字串的宣告(一維陣列)

語法charstr[7]={‘H’,’e’,’l’,’l’,’o’,’!’,’\0’};以類似字元陣列宣告charstr[7]=”Hello!”;直接字串命名的方式

charstr[]=”Hello!”;編譯器會自動配置記憶體空間49-1-2字串的宣告(一維陣列)語法4範(fàn)例Ch9_2(1/2)

ch9_2輸出字串中每一個元素的內(nèi)容及位址1#include<stdio.h>2voidmain()3{

4inti=0;5charstr[]="example";6while(str[i]!=‘\0’)

{printf("%c",str[i]);9printf("%d\n",&str[i]);i++;}12}5範(fàn)例Ch9_2(1/2)ch9_2輸出字串中每一個元ch9_2輸出結(jié)果(2/2)程式執(zhí)行結(jié)果e1245044x1245045a1245046m1245047p1245048l1245049e12450506ch9_2輸出結(jié)果(2/2)程式執(zhí)行結(jié)果e124509-1-3字串的宣告(二維陣列)

str[2][8]={“string1”,”string2”};在陣列中的擺放位置如下

Column(行)Row(列)str[0][0]str[0][1]str[0][2]str[0][3]str[0][4]str[0][5]str[0][6]str[0][7]string1\0str[1][0]str[1][1]str[1][2]str[1][3]str[1][4]str[1][5]str[1][6]str[1][7]string2\079-1-3字串的宣告(二維陣列)

str[2][8]={“

範(fàn)例Ch9_3(1/2)ch9_3建立一個存放一到四的字串陣列,並且將之輸出

1#include<stdio.h>2voidmain()3{4inti;5charstr[4][10]={“one”,”two”,”three”,”four”};6for(i=0;i<4;i++)7printf(“%s\n”,str[i]);8}8

範(fàn)例Ch9_3(1/2)ch9_3建立一個存放一到四Ch9_3輸出結(jié)果(2/2)程式執(zhí)行結(jié)果onetwothreefour

9Ch9_3輸出結(jié)果(2/2)程式執(zhí)行結(jié)果99-2字串的輸入及輸出9-2-1字串的輸入

scanf()gets()遇到空白字元時

,並不會結(jié)束,其結(jié)束的條件為遇到結(jié)束符號『\0』

宣告方式宣告格式結(jié)束條件未指定欄寬scanf(“%s”,str);當(dāng)讀到空白字元指定欄寬scanf(“%#s”,str);/*其中#表示一正整數(shù)*/1.讀到空白字元時2.超過指定欄寬時109-2字串的輸入及輸出9-2-1字串的輸入宣告方式宣告範(fàn)例Ch9_4(1/2)ch9_4利用scanf()輸入字串,並輸出1#include<stdio.h>2voidmain()3{4charstr[10];5printf("請輸入一字串:");6scanf(“%6s”,str);/*指定欄寬為6個字元*/7printf("輸入的字串為:%s",str);8}11範(fàn)例Ch9_4(1/2)ch9_4利用scanf()ch9_4輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:123456789輸入的字串為:12345612ch9_4輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:範(fàn)例Ch9_5(1/2)ch9_5使用gets()輸入字串,並將之輸出

1#include<stdio.h>2voidmain()3{4charstr[20];5printf(“請輸入一字串:”);6gets(str);7printf(“輸入的字串為:%s”,str);8}13範(fàn)例Ch9_5(1/2)ch9_5使用gets()輸Ch9_5輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:Thisisapen輸入的字串為:Thisisapen14Ch9_5輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:T9-2字串的輸入及輸出9-2-2字串的輸出

printf()一次能輸出多個字串具格式化輸出的功能puts()一次只能輸出一個字串

不具格式化輸出的功能

每輸出一個字串,puts()也將輸出一個跳列字

159-2字串的輸入及輸出9-2-2字串的輸出15範(fàn)例Ch9_6(1/2)ch9_6以gets()輸入字串,且以puts()輸出字串

1#include<stdio.h>2voidmain()3{4charinput[20];5puts(“請輸入字串:”);6gets(input);7puts(input);8}16範(fàn)例Ch9_6(1/2)ch9_6以gets()輸Ch9_6輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入字串:ThisisapenThisisapen17Ch9_6輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入字串:179-3其它字串的處理函數(shù)

使用前,需加入string.h的標(biāo)頭檔strlen():計算字串長度strcmp():比較兩個字串strcpy():將字串一複製到字串二strcat():合併字串一及字串二toupper():將字串內(nèi)容轉(zhuǎn)換成大寫字母tolower():將字串內(nèi)容轉(zhuǎn)換成小寫字母189-3其它字串的處理函數(shù)使用前,需加入string.h的範(fàn)例Ch9_9(1/2)ch9_9輸入一個字串,計算出該字串的長度

1#include<string.h>/*因使用strlin()函數(shù),需叫用標(biāo)頭檔*/

2#include<stdio.h>3voidmain()4{5charstr[30];6intnumber;7printf("請輸入一字串:");8gets(str);9number=strlen(str);/*呼叫strlen()函數(shù),求出str的長度*/

10printf("\n字串長度為:%d",number);11}19範(fàn)例Ch9_9(1/2)ch9_9輸入一個字串,計算Ch9_9輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:Thisisapig字串長度為:1320Ch9_9輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:T9-3-2strcmp()函數(shù)

語法整數(shù)型態(tài)變數(shù)=strcmp(字串陣列名稱一,字串陣列名稱二);說明整數(shù)型態(tài)變數(shù)0代表兩個字串相同負數(shù)及正數(shù)皆表示為不相同字串strcmp()會將字串一與字串二做一比較,看是否相同219-3-2strcmp()函數(shù)語法21範(fàn)例Ch9_10(1/3)ch9_10設(shè)計一個程式,檢查輸入的字串是否相同

1#include<stdio.h>2#include<string.h>/*因使用strcmp()函數(shù),需叫用標(biāo)頭檔*/3voidmain()4{5charstr1[20];6charstr2[20];7inti;8printf("請輸入第一個字串:");9gets(str1);22範(fàn)例Ch9_10(1/3)ch9_10設(shè)計一個程式,範(fàn)例Ch9_10(2/3)10printf("請輸入第二個字串:");11gets(str2);12i=strcmp(str1,str2);/*比較str1,str2字串是否相同*/13if(i==0)14printf("輸入的兩個字串為相同的字串!");15else16printf("輸入的兩個字串為不相同的字串!");17}23範(fàn)例Ch9_10(2/3)10printf("請Ch9_10輸出結(jié)果(3/3)程式執(zhí)行結(jié)果請輸入第一個字串:computer請輸入第二個字串:computer輸入的兩個字串為相同的字串!

請輸入第一個字串:computer請輸入第二個字串:mouse輸入的兩個字串為不相同的字串!24Ch9_10輸出結(jié)果(3/3)程式執(zhí)行結(jié)果請輸入第一個字9-3-3strcpy()函數(shù)

語法strcpy(字串1,字串2);說明字串1:將要被複製成跟字串2相同內(nèi)容的字串字串2:將要複製給字串1的字串

此函數(shù)可將字串2變數(shù)的內(nèi)容拷貝到字串1的內(nèi)容(包含空字元)259-3-3strcpy()函數(shù)語法25範(fàn)例Ch9_11(1/2)

ch9_11使用者輸入一個字串,程式將以該字串覆蓋原程式內(nèi)定的字串1#include<stdio.h>2#include<string.h>/*因使用strcpy()函數(shù),需叫用標(biāo)頭檔*/3voidmain()4{5charstr1[30]=”Thisisanoriginalstring”,str2[30];6printf("請輸入一字串:");7gets(str2);8printf(“原先內(nèi)定字串1的內(nèi)容為:%s\n”,str1);9strcpy(str1,str2);10printf("複製過後的字串1內(nèi)容為:%s",str1);11}26範(fàn)例Ch9_11(1/2)ch9_11使用者輸入一個Ch9_11輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:Thisismyinput原先內(nèi)定字串1的內(nèi)容為:Thisisanoriginalstring複製過後的字串1內(nèi)容為:Thisismyinput27Ch9_11輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:

9-3-4strcat()函數(shù)

語法strcat(str1,str2);說明str2將會覆蓋住str1字串的結(jié)束字元'\0',且保留本身的結(jié)束字元'\0'28

9-3-4strcat()函數(shù)

語法28範(fàn)例Ch9_12(1/2)

ch9_12使用strcat()函數(shù),將兩個字串合併為一,並輸出1#include<stdio.h>2#include<string.h>/*因使用strcat()函數(shù),需叫用標(biāo)頭檔*/3voidmain()4{5charstr1[20]=”Taiwan”;6charstr2[]=”University”;7printf(“合併前str1內(nèi)容為:%sstr2內(nèi)容為:%s\n“,str1,str2);8strcat(str1,str2);9printf(“合併後str1內(nèi)容為:%sstr2內(nèi)容為:%s\n”,str1,str2);10}

29範(fàn)例Ch9_12(1/2)ch9_12使用strcaCh9_12輸出結(jié)果(2/2)程式執(zhí)行結(jié)果合併前str1內(nèi)容為:Taiwanstr2內(nèi)容為:University合併後str1內(nèi)容為:TaiwanUniversitystr2內(nèi)容為:University

30Ch9_12輸出結(jié)果(2/2)程式執(zhí)行結(jié)果合併前str9-3-5toupper()函數(shù)及tolower()函數(shù)

語法陣列名稱[索引值]=tolower(陣列名稱[索引值]);陣列名稱[索引值]=toupper(陣列名稱[索引值]);說明需加入ctype.h的標(biāo)頭擋toupper()函數(shù)可以將字元強制轉(zhuǎn)換成大寫tolower()函數(shù)則可以將字元強制轉(zhuǎn)換成小寫319-3-5toupper()函數(shù)及tolower()函範(fàn)例Ch9_13(1/3)

ch9_13將輸入的小寫字串轉(zhuǎn)換成大寫,並將輸入的大

溫馨提示

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

最新文檔

評論

0/150

提交評論