版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第九章字串1第九章字串1本章學(xué)習(xí)重點(diǎn)9-1字串的基本架構(gòu)9-2字串的輸入及輸出9-3字串的函數(shù)2本章學(xué)習(xí)重點(diǎn)9-1字串的基本架構(gòu)29-1-1字串的定義字串(String)在C語言中使用來儲(chǔ)存一串字元的一種資料結(jié)構(gòu)比字元陣列多出一個(gè)控制字元『\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!”;編譯器會(huì)自動(dòng)配置記憶體空間49-1-2字串的宣告(一維陣列)語法4範(fàn)例Ch9_2(1/2)
ch9_2輸出字串中每一個(gè)元素的內(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輸出字串中每一個(gè)元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建立一個(gè)存放一到四的字串陣列,並且將之輸出
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建立一個(gè)存放一到四Ch9_3輸出結(jié)果(2/2)程式執(zhí)行結(jié)果onetwothreefour
9Ch9_3輸出結(jié)果(2/2)程式執(zhí)行結(jié)果99-2字串的輸入及輸出9-2-1字串的輸入
scanf()gets()遇到空白字元時(shí)
,並不會(huì)結(jié)束,其結(jié)束的條件為遇到結(jié)束符號(hào)『\0』
宣告方式宣告格式結(jié)束條件未指定欄寬scanf(“%s”,str);當(dāng)讀到空白字元指定欄寬scanf(“%#s”,str);/*其中#表示一正整數(shù)*/1.讀到空白字元時(shí)2.超過指定欄寬時(shí)109-2字串的輸入及輸出9-2-1字串的輸入宣告方式宣告範(fàn)例Ch9_4(1/2)ch9_4利用scanf()輸入字串,並輸出1#include<stdio.h>2voidmain()3{4charstr[10];5printf("請(qǐng)輸入一字串:");6scanf(“%6s”,str);/*指定欄寬為6個(gè)字元*/7printf("輸入的字串為:%s",str);8}11範(fàn)例Ch9_4(1/2)ch9_4利用scanf()ch9_4輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請(qǐng)輸入一字串:123456789輸入的字串為:12345612ch9_4輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請(qǐng)輸入一字串:範(fàn)例Ch9_5(1/2)ch9_5使用gets()輸入字串,並將之輸出
1#include<stdio.h>2voidmain()3{4charstr[20];5printf(“請(qǐng)輸入一字串:”);6gets(str);7printf(“輸入的字串為:%s”,str);8}13範(fàn)例Ch9_5(1/2)ch9_5使用gets()輸Ch9_5輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請(qǐng)輸入一字串:Thisisapen輸入的字串為:Thisisapen14Ch9_5輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請(qǐng)輸入一字串:T9-2字串的輸入及輸出9-2-2字串的輸出
printf()一次能輸出多個(gè)字串具格式化輸出的功能puts()一次只能輸出一個(gè)字串
不具格式化輸出的功能
每輸出一個(gè)字串,puts()也將輸出一個(gè)跳列字
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(“請(qǐng)輸入字串:”);6gets(input);7puts(input);8}16範(fàn)例Ch9_6(1/2)ch9_6以gets()輸Ch9_6輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請(qǐng)輸入字串:ThisisapenThisisapen17Ch9_6輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請(qǐng)輸入字串:179-3其它字串的處理函數(shù)
使用前,需加入string.h的標(biāo)頭檔strlen():計(jì)算字串長(zhǎng)度strcmp():比較兩個(gè)字串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輸入一個(gè)字串,計(jì)算出該字串的長(zhǎng)度
1#include<string.h>/*因使用strlin()函數(shù),需叫用標(biāo)頭檔*/
2#include<stdio.h>3voidmain()4{5charstr[30];6intnumber;7printf("請(qǐng)輸入一字串:");8gets(str);9number=strlen(str);/*呼叫strlen()函數(shù),求出str的長(zhǎng)度*/
10printf("\n字串長(zhǎng)度為:%d",number);11}19範(fàn)例Ch9_9(1/2)ch9_9輸入一個(gè)字串,計(jì)算Ch9_9輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請(qǐng)輸入一字串:Thisisapig字串長(zhǎng)度為:1320Ch9_9輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請(qǐng)輸入一字串:T9-3-2strcmp()函數(shù)
語法整數(shù)型態(tài)變數(shù)=strcmp(字串陣列名稱一,字串陣列名稱二);說明整數(shù)型態(tài)變數(shù)0代表兩個(gè)字串相同負(fù)數(shù)及正數(shù)皆表示為不相同字串strcmp()會(huì)將字串一與字串二做一比較,看是否相同219-3-2strcmp()函數(shù)語法21範(fàn)例Ch9_10(1/3)ch9_10設(shè)計(jì)一個(gè)程式,檢查輸入的字串是否相同
1#include<stdio.h>2#include<string.h>/*因使用strcmp()函數(shù),需叫用標(biāo)頭檔*/3voidmain()4{5charstr1[20];6charstr2[20];7inti;8printf("請(qǐng)輸入第一個(gè)字串:");9gets(str1);22範(fàn)例Ch9_10(1/3)ch9_10設(shè)計(jì)一個(gè)程式,範(fàn)例Ch9_10(2/3)10printf("請(qǐng)輸入第二個(gè)字串:");11gets(str2);12i=strcmp(str1,str2);/*比較str1,str2字串是否相同*/13if(i==0)14printf("輸入的兩個(gè)字串為相同的字串!");15else16printf("輸入的兩個(gè)字串為不相同的字串!");17}23範(fàn)例Ch9_10(2/3)10printf("請(qǐng)Ch9_10輸出結(jié)果(3/3)程式執(zhí)行結(jié)果請(qǐng)輸入第一個(gè)字串:computer請(qǐng)輸入第二個(gè)字串:computer輸入的兩個(gè)字串為相同的字串!
請(qǐng)輸入第一個(gè)字串:computer請(qǐng)輸入第二個(gè)字串:mouse輸入的兩個(gè)字串為不相同的字串!24Ch9_10輸出結(jié)果(3/3)程式執(zhí)行結(jié)果請(qǐng)輸入第一個(gè)字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使用者輸入一個(gè)字串,程式將以該字串覆蓋原程式內(nèi)定的字串1#include<stdio.h>2#include<string.h>/*因使用strcpy()函數(shù),需叫用標(biāo)頭檔*/3voidmain()4{5charstr1[30]=”Thisisanoriginalstring”,str2[30];6printf("請(qǐng)輸入一字串:");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使用者輸入一個(gè)Ch9_11輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請(qǐng)輸入一字串:Thisismyinput原先內(nèi)定字串1的內(nèi)容為:Thisisanoriginalstring複製過後的字串1內(nèi)容為:Thisismyinput27Ch9_11輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請(qǐng)輸入一字串:
9-3-4strcat()函數(shù)
語法strcat(str1,str2);說明str2將會(huì)覆蓋住str1字串的結(jié)束字元'\0',且保留本身的結(jié)束字元'\0'28
9-3-4strcat()函數(shù)
語法28範(fàn)例Ch9_12(1/2)
ch9_12使用strcat()函數(shù),將兩個(gè)字串合併為一,並輸出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ù)可以將字元強(qiáng)制轉(zhuǎn)換成大寫tolower()函數(shù)則可以將字元強(qiáng)制轉(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等.壓縮文件請(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工廠介紹教學(xué)課件
- 江蘇省南京市2025-2026南京秦淮區(qū)九上期末物理卷(無答案)
- 海南省??谑?025-2026學(xué)年八年級(jí)上學(xué)期1月期末考試英語試卷(含答案無聽力原文及音頻)
- 化工企業(yè)大修培訓(xùn)課件
- 飛機(jī)飛行原理科普
- 飛機(jī)科普小知識(shí)
- 2026廣東廣州市天河區(qū)長(zhǎng)興街道綜合事務(wù)中心招聘環(huán)衛(wèi)保潔員參考考試題庫(kù)及答案解析
- 食堂食品分配制度
- 2026年上半年玉溪師范學(xué)院招聘(6人)筆試參考題庫(kù)及答案解析
- 禮泉春節(jié)活動(dòng)策劃方案(3篇)
- 土壤監(jiān)測(cè)員職業(yè)資格認(rèn)證考試題含答案
- 骨科常見疾病及康復(fù)治療
- 2025年及未來5年中國(guó)瀝青混凝土行業(yè)市場(chǎng)供需格局及行業(yè)前景展望報(bào)告
- 管理學(xué)試題及參考答案 (一)
- 2025年廣西壯族自治區(qū)高職單招信息技術(shù)測(cè)試(信息技術(shù))
- 2025年電力交易員試題及答案解析
- 2024集中式光伏電站場(chǎng)區(qū)典型設(shè)計(jì)手冊(cè)
- 野山參課件教學(xué)課件
- 實(shí)施指南(2025)《HG-T 5026-2016氯堿工業(yè)回收硫酸》
- 無人機(jī)安全操控理論考試題及答案
- 2025年蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫(kù)附答案
評(píng)論
0/150
提交評(píng)論