版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第九章字串1第九章字串1本章學習重點9-1字串的基本架構9-2字串的輸入及輸出9-3字串的函數2本章學習重點9-1字串的基本架構29-1-1字串的定義字串(String)在C語言中使用來儲存一串字元的一種資料結構比字元陣列多出一個控制字元『\0』,用來表示字串的結束
字串
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範例Ch9_2(1/2)
ch9_2輸出字串中每一個元素的內容及位址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範例Ch9_2(1/2)ch9_2輸出字串中每一個元ch9_2輸出結果(2/2)程式執(zhí)行結果e1245044x1245045a1245046m1245047p1245048l1245049e12450506ch9_2輸出結果(2/2)程式執(zhí)行結果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]={“
範例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
範例Ch9_3(1/2)ch9_3建立一個存放一到四Ch9_3輸出結果(2/2)程式執(zhí)行結果onetwothreefour
9Ch9_3輸出結果(2/2)程式執(zhí)行結果99-2字串的輸入及輸出9-2-1字串的輸入
scanf()gets()遇到空白字元時
,並不會結束,其結束的條件為遇到結束符號『\0』
宣告方式宣告格式結束條件未指定欄寬scanf(“%s”,str);當讀到空白字元指定欄寬scanf(“%#s”,str);/*其中#表示一正整數*/1.讀到空白字元時2.超過指定欄寬時109-2字串的輸入及輸出9-2-1字串的輸入宣告方式宣告範例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範例Ch9_4(1/2)ch9_4利用scanf()ch9_4輸出結果(2/2)程式執(zhí)行結果請輸入一字串:123456789輸入的字串為:12345612ch9_4輸出結果(2/2)程式執(zhí)行結果請輸入一字串:範例Ch9_5(1/2)ch9_5使用gets()輸入字串,並將之輸出
1#include<stdio.h>2voidmain()3{4charstr[20];5printf(“請輸入一字串:”);6gets(str);7printf(“輸入的字串為:%s”,str);8}13範例Ch9_5(1/2)ch9_5使用gets()輸Ch9_5輸出結果(2/2)程式執(zhí)行結果請輸入一字串:Thisisapen輸入的字串為:Thisisapen14Ch9_5輸出結果(2/2)程式執(zhí)行結果請輸入一字串:T9-2字串的輸入及輸出9-2-2字串的輸出
printf()一次能輸出多個字串具格式化輸出的功能puts()一次只能輸出一個字串
不具格式化輸出的功能
每輸出一個字串,puts()也將輸出一個跳列字
159-2字串的輸入及輸出9-2-2字串的輸出15範例Ch9_6(1/2)ch9_6以gets()輸入字串,且以puts()輸出字串
1#include<stdio.h>2voidmain()3{4charinput[20];5puts(“請輸入字串:”);6gets(input);7puts(input);8}16範例Ch9_6(1/2)ch9_6以gets()輸Ch9_6輸出結果(2/2)程式執(zhí)行結果請輸入字串:ThisisapenThisisapen17Ch9_6輸出結果(2/2)程式執(zhí)行結果請輸入字串:179-3其它字串的處理函數
使用前,需加入string.h的標頭檔strlen():計算字串長度strcmp():比較兩個字串strcpy():將字串一複製到字串二strcat():合併字串一及字串二toupper():將字串內容轉換成大寫字母tolower():將字串內容轉換成小寫字母189-3其它字串的處理函數使用前,需加入string.h的範例Ch9_9(1/2)ch9_9輸入一個字串,計算出該字串的長度
1#include<string.h>/*因使用strlin()函數,需叫用標頭檔*/
2#include<stdio.h>3voidmain()4{5charstr[30];6intnumber;7printf("請輸入一字串:");8gets(str);9number=strlen(str);/*呼叫strlen()函數,求出str的長度*/
10printf("\n字串長度為:%d",number);11}19範例Ch9_9(1/2)ch9_9輸入一個字串,計算Ch9_9輸出結果(2/2)程式執(zhí)行結果請輸入一字串:Thisisapig字串長度為:1320Ch9_9輸出結果(2/2)程式執(zhí)行結果請輸入一字串:T9-3-2strcmp()函數
語法整數型態(tài)變數=strcmp(字串陣列名稱一,字串陣列名稱二);說明整數型態(tài)變數0代表兩個字串相同負數及正數皆表示為不相同字串strcmp()會將字串一與字串二做一比較,看是否相同219-3-2strcmp()函數語法21範例Ch9_10(1/3)ch9_10設計一個程式,檢查輸入的字串是否相同
1#include<stdio.h>2#include<string.h>/*因使用strcmp()函數,需叫用標頭檔*/3voidmain()4{5charstr1[20];6charstr2[20];7inti;8printf("請輸入第一個字串:");9gets(str1);22範例Ch9_10(1/3)ch9_10設計一個程式,範例Ch9_10(2/3)10printf("請輸入第二個字串:");11gets(str2);12i=strcmp(str1,str2);/*比較str1,str2字串是否相同*/13if(i==0)14printf("輸入的兩個字串為相同的字串!");15else16printf("輸入的兩個字串為不相同的字串!");17}23範例Ch9_10(2/3)10printf("請Ch9_10輸出結果(3/3)程式執(zhí)行結果請輸入第一個字串:computer請輸入第二個字串:computer輸入的兩個字串為相同的字串!
請輸入第一個字串:computer請輸入第二個字串:mouse輸入的兩個字串為不相同的字串!24Ch9_10輸出結果(3/3)程式執(zhí)行結果請輸入第一個字9-3-3strcpy()函數
語法strcpy(字串1,字串2);說明字串1:將要被複製成跟字串2相同內容的字串字串2:將要複製給字串1的字串
此函數可將字串2變數的內容拷貝到字串1的內容(包含空字元)259-3-3strcpy()函數語法25範例Ch9_11(1/2)
ch9_11使用者輸入一個字串,程式將以該字串覆蓋原程式內定的字串1#include<stdio.h>2#include<string.h>/*因使用strcpy()函數,需叫用標頭檔*/3voidmain()4{5charstr1[30]=”Thisisanoriginalstring”,str2[30];6printf("請輸入一字串:");7gets(str2);8printf(“原先內定字串1的內容為:%s\n”,str1);9strcpy(str1,str2);10printf("複製過後的字串1內容為:%s",str1);11}26範例Ch9_11(1/2)ch9_11使用者輸入一個Ch9_11輸出結果(2/2)程式執(zhí)行結果請輸入一字串:Thisismyinput原先內定字串1的內容為:Thisisanoriginalstring複製過後的字串1內容為:Thisismyinput27Ch9_11輸出結果(2/2)程式執(zhí)行結果請輸入一字串:
9-3-4strcat()函數
語法strcat(str1,str2);說明str2將會覆蓋住str1字串的結束字元'\0',且保留本身的結束字元'\0'28
9-3-4strcat()函數
語法28範例Ch9_12(1/2)
ch9_12使用strcat()函數,將兩個字串合併為一,並輸出1#include<stdio.h>2#include<string.h>/*因使用strcat()函數,需叫用標頭檔*/3voidmain()4{5charstr1[20]=”Taiwan”;6charstr2[]=”University”;7printf(“合併前str1內容為:%sstr2內容為:%s\n“,str1,str2);8strcat(str1,str2);9printf(“合併後str1內容為:%sstr2內容為:%s\n”,str1,str2);10}
29範例Ch9_12(1/2)ch9_12使用strcaCh9_12輸出結果(2/2)程式執(zhí)行結果合併前str1內容為:Taiwanstr2內容為:University合併後str1內容為:TaiwanUniversitystr2內容為:University
30Ch9_12輸出結果(2/2)程式執(zhí)行結果合併前str9-3-5toupper()函數及tolower()函數
語法陣列名稱[索引值]=tolower(陣列名稱[索引值]);陣列名稱[索引值]=toupper(陣列名稱[索引值]);說明需加入ctype.h的標頭擋toupper()函數可以將字元強制轉換成大寫tolower()函數則可以將字元強制轉換成小寫319-3-5toupper()函數及tolower()函範例Ch9_13(1/3)
ch9_13將輸入的小寫字串轉換成大寫,並將輸入的大寫字串轉換成小寫
1#include<stdio.h>2#include<ctype.h>/*使用toupper()函數及tolower()函數*/
3voidmain()4{5inti;6charstr1[10];7charstr2[10];8printf(“請輸入字串一:”);9gets(str1); 10printf(“請輸入字串二:”);11gets(str2);32範例Ch9_13(1/3)ch9_13將輸入的小寫字範例Ch9_13(2/3)12for(i=0;str1[i]!=’\0’;i++)13str1[i]=tolower(str1[i]);14for(i=0;str2[i]!=’\0’;i++)15str2[i]=toupper(str2[i]);16printf(“大寫轉換成小寫:%s\n“,str1);17printf(“小寫轉換成大寫:%s“,str2);18}33範例Ch9_13(2/3)12for(i=0Ch9_13輸出結果(3/3)程式執(zhí)行結果請輸入字串一:ABC請輸入字串二:efg大寫轉換成小寫:abc小寫轉換成大寫:EFG34Ch9_13輸出結果(3/3)程式執(zhí)行結果請輸入字串一:第九章字串35第九章字串1本章學習重點9-1字串的基本架構9-2字串的輸入及輸出9-3字串的函數36本章學習重點9-1字串的基本架構29-1-1字串的定義字串(String)在C語言中使用來儲存一串字元的一種資料結構比字元陣列多出一個控制字元『\0』,用來表示字串的結束
字串
chara[]=”String”;chara[]={‘S’,’t’,’r’,’i’,’n’,’g’,’\0’};字元陣列
charb[]={‘S’,’t’,’r’,’i’,’n’,’g’};379-1-1字串的定義字串(String)39-1-2字串的宣告(一維陣列)
語法charstr[7]={‘H’,’e’,’l’,’l’,’o’,’!’,’\0’};以類似字元陣列宣告charstr[7]=”Hello!”;直接字串命名的方式
charstr[]=”Hello!”;編譯器會自動配置記憶體空間389-1-2字串的宣告(一維陣列)語法4範例Ch9_2(1/2)
ch9_2輸出字串中每一個元素的內容及位址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}39範例Ch9_2(1/2)ch9_2輸出字串中每一個元ch9_2輸出結果(2/2)程式執(zhí)行結果e1245044x1245045a1245046m1245047p1245048l1245049e124505040ch9_2輸出結果(2/2)程式執(zhí)行結果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\0419-1-3字串的宣告(二維陣列)
str[2][8]={“
範例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}42
範例Ch9_3(1/2)ch9_3建立一個存放一到四Ch9_3輸出結果(2/2)程式執(zhí)行結果onetwothreefour
43Ch9_3輸出結果(2/2)程式執(zhí)行結果99-2字串的輸入及輸出9-2-1字串的輸入
scanf()gets()遇到空白字元時
,並不會結束,其結束的條件為遇到結束符號『\0』
宣告方式宣告格式結束條件未指定欄寬scanf(“%s”,str);當讀到空白字元指定欄寬scanf(“%#s”,str);/*其中#表示一正整數*/1.讀到空白字元時2.超過指定欄寬時449-2字串的輸入及輸出9-2-1字串的輸入宣告方式宣告範例Ch9_4(1/2)ch9_4利用scanf()輸入字串,並輸出1#include<stdio.h>2voidmain()3{4charstr[10];5printf("請輸入一字串:");6scanf(“%6s”,str);/*指定欄寬為6個字元*/7printf("輸入的字串為:%s",str);8}45範例Ch9_4(1/2)ch9_4利用scanf()ch9_4輸出結果(2/2)程式執(zhí)行結果請輸入一字串:123456789輸入的字串為:12345646ch9_4輸出結果(2/2)程式執(zhí)行結果請輸入一字串:範例Ch9_5(1/2)ch9_5使用gets()輸入字串,並將之輸出
1#include<stdio.h>2voidmain()3{4charstr[20];5printf(“請輸入一字串:”);6gets(str);7printf(“輸入的字串為:%s”,str);8}47範例Ch9_5(1/2)ch9_5使用gets()輸Ch9_5輸出結果(2/2)程式執(zhí)行結果請輸入一字串:Thisisapen輸入的字串為:Thisisapen48Ch9_5輸出結果(2/2)程式執(zhí)行結果請輸入一字串:T9-2字串的輸入及輸出9-2-2字串的輸出
printf()一次能輸出多個字串具格式化輸出的功能puts()一次只能輸出一個字串
不具格式化輸出的功能
每輸出一個字串,puts()也將輸出一個跳列字
499-2字串的輸入及輸出9-2-2字串的輸出15範例Ch9_6(1/2)ch9_6以gets()輸入字串,且以puts()輸出字串
1#include<stdio.h>2voidmain()3{4charinput[20];5puts(“請輸入字串:”);6gets(input);7puts(input);8}50範例Ch9_6(1/2)ch9_6以gets()輸Ch9_6輸出結果(2/2)程式執(zhí)行結果請輸入字串:ThisisapenThisisapen51Ch9_6輸出結果(2/2)程式執(zhí)行結果請輸入字串:179-3其它字串的處理函數
使用前,需加入string.h的標頭檔strlen():計算字串長度strcmp():比較兩個字串strcpy():將字串一複製到字串二strcat():合併字串一及字串二toupper():將字串內容轉換成大寫字母tolower():將字串內容轉換成小寫字母529-3其它字串的處理函數使用前,需加入string.h的範例Ch9_9(1/2)ch9_9輸入一個字串,計算出該字串的長度
1#include<string.h>/*因使用strlin()函數,需叫用標頭檔*/
2#include<stdio.h>3voidmain()4{5charstr[30];6intnumber;7printf("請輸入一字串:");8gets(str);9number=strlen(str);/*呼叫strlen()函數,求出str的長度*/
10printf("\n字串長度為:%d",number);11}53範例Ch9_9(1/2)ch9_9輸入一個字串,計算Ch9_9輸出結果(2/2)程式執(zhí)行結果請輸入一字串:Thisisapig字串長度為:1354Ch9_9輸出結果(2/2)程式執(zhí)行結果請輸入一字串:T9-3-2strcmp()函數
語法整數型態(tài)變數=strcmp(字串陣列名稱一,字串陣列名稱二);說明整數型態(tài)變數0代表兩個字串相同負數及正數皆表示為不相同字串strcmp()會將字串一與字串二做一比較,看是否相同559-3-2strcmp()函數語法21範例Ch9_10(1/3)ch9_10設計一個程式,檢查輸入的字串是否相同
1#include<stdio.h>2#include<string.h>/*因使用strcmp()函數,需叫用標頭檔*/3voidmain()4{5charstr1[20];6charstr2[20];7inti;8printf("請輸入第一個字串:");9gets(str1);56範例Ch9_10(1/3)ch9_10設計一個程式,範例Ch9_10(2/3)10printf("請輸入第二個字串:");11gets(str2);12i=strcmp(str1,str2);/*比較str1,str2字串是否相同*/13if(i==0)14printf("輸入的兩個字串為相同的字串!");15else16printf("輸入的兩個字串為不相同的字串!");17}57範例Ch9_10(2/3)10printf("請Ch9_10輸出結果(3/3)程式執(zhí)行結果請輸入第一個字串:computer請輸入第二個字串:computer輸入的兩個字串為相同的字串!
請輸入第一個字串:computer請輸入第二個字串:mouse輸入的兩個字串為不相同的字串!58Ch9_10輸出結果(3/3)程式執(zhí)行結果請輸入第一個字9-3-3strcpy()函數
語法strcpy(字串1,字串2);說明字串1:將要被複製成跟字串2相同內容的字串字串2:將要複製給字串1的字串
此函數可將字串2變數的內容拷貝到字串1的內容(包含空字元)599-3-3strcpy()函數語法25範例Ch9_11(1/2)
ch9_11使用者輸入一個字串,程式將以該字串覆蓋原程式內定的字串1#include<stdio.h>2#include<string.h>/*因使用strcpy()函數,需叫用標頭檔*/3voidmain()4{5charstr1[30]=”Thisisanoriginalstring”,str2[30];6printf("請輸入一字串:");7gets(str2);8printf(“原先內定字串1的內容為:%s\n”,str1);9strcpy(str1,str2);10printf("複製過後的字串1內容為:%s",str1);11}60範例Ch9_11(1/2)ch9_11使用者輸入一個Ch9_11輸出結果(2/2)程式執(zhí)行結果請輸入一字串:Thisismyinput原先內定字串1的內容為:Thisisanoriginalstring複製過後的字串1內容為:Thisismyinput61Ch9_11輸出結果(2/2)程式執(zhí)行結果請輸入一字串:
9-3-4strcat()函數
語法strcat(str1,str2);說明str2將會覆蓋住str1字串的結束字元'\0',且保留本身的結束字元'\0'62
9-3-4strcat()函數
語法28範例Ch9_12(1/2)
ch9_12使用strcat()函數,將兩個字串合併為一,並輸出1#include<stdio.h>2#include<string.h>/*因使用strcat()函數,需叫用標頭檔*/3voidmain()4{5charstr1[20]=”Taiwan”
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 13 My seven days(說課稿)-2024-2025學年劍橋少兒英語二級上冊
- 二零二五年度報刊亭智能物流配送合作合同2篇
- 二零二五年度大數據房地產典當服務協議3篇
- 二零二五年度勞動合同違約責任與賠償細則合同3篇
- 新疆昌吉回族自治州(2024年-2025年小學六年級語文)統(tǒng)編版摸底考試(上學期)試卷及答案
- Unit 4 What can you do Part A lets learn (說課稿)-2024-2025學年人教PEP版英語五年級上冊
- 貴州理工學院《航空事故調查與安全管理》2023-2024學年第一學期期末試卷
- 貴州經貿職業(yè)技術學院《交通運輸系統(tǒng)規(guī)劃》2023-2024學年第一學期期末試卷
- 二零二五年度房地產租賃合同范本(含土地、配套設施、裝修及稅費)3篇
- Unit5 What do we eat?(說課稿)-2024-2025學年滬教版(2024)英語三年級上冊
- 領導年終總結匯報工作
- CQI-23模塑系統(tǒng)評估審核表-中英文
- 2024年大型游樂設施操作(Y2)特種作業(yè)取證(廣東)考試復習題庫(含答案)
- 【教案】Unit+4+My+Favourite+Subject大單元整體教學設計人教版英語七年級上冊
- 2024年省國資委選聘兼職外部董事人選高頻難、易錯點500題模擬試題附帶答案詳解
- 2024-2030年中國工控機行業(yè)需求狀況及發(fā)展趨勢分析研究報告
- 離職證明(標準模版)
- 遼寧省名校聯盟2024年高三9月份聯合考試 英語試卷(含答案詳解)
- JGJ181-2009T 房屋建筑與市政基礎設施工程檢測
- GB/T 20554-2024海帶
- 100以內加減法混合題帶括號
評論
0/150
提交評論