版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第九章字串1本章學(xué)習(xí)重點(diǎn)9-1字串的基本架構(gòu)9-2字串的輸入及輸出9-3字串的函數(shù)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-2字串的宣告(一維陣列)
語法charstr[7]={‘H’,’e’,’l’,’l’,’o’,’!’,’\0’};以類似字元陣列宣告charstr[7]=”Hello!”;直接字串命名的方式
charstr[]=”Hello!”;編譯器會(huì)自動(dòng)配置記憶體空間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}5ch9_2輸出結(jié)果(2/2)程式執(zhí)行結(jié)果e1245044x1245045a1245046m1245047p1245048l1245049e124505069-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\07
範(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}8Ch9_3輸出結(jié)果(2/2)程式執(zhí)行結(jié)果onetwothreefour
99-2字串的輸入及輸出9-2-1字串的輸入
scanf()gets()遇到空白字元時(shí)
,並不會(huì)結(jié)束,其結(jié)束的條件為遇到結(jié)束符號『\0』
宣告方式宣告格式結(jié)束條件未指定欄寬scanf(“%s”,str);當(dāng)讀到空白字元指定欄寬scanf(“%#s”,str);/*其中#表示一正整數(shù)*/1.讀到空白字元時(shí)2.超過指定欄寬時(shí)10範(fàn)例Ch9_4(1/2)ch9_4利用scanf()輸入字串,並輸出1#include<stdio.h>2voidmain()3{4charstr[10];5printf("請輸入一字串:");6scanf(“%6s”,str);/*指定欄寬為6個(gè)字元*/7printf("輸入的字串為:%s",str);8}11ch9_4輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:123456789輸入的字串為:12345612範(fàn)例Ch9_5(1/2)ch9_5使用gets()輸入字串,並將之輸出
1#include<stdio.h>2voidmain()3{4charstr[20];5printf(“請輸入一字串:”);6gets(str);7printf(“輸入的字串為:%s”,str);8}13Ch9_5輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:Thisisapen輸入的字串為:Thisisapen149-2字串的輸入及輸出9-2-2字串的輸出
printf()一次能輸出多個(gè)字串具格式化輸出的功能puts()一次只能輸出一個(gè)字串
不具格式化輸出的功能
每輸出一個(gè)字串,puts()也將輸出一個(gè)跳列字
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}16Ch9_6輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入字串:ThisisapenThisisapen179-3其它字串的處理函數(shù)
使用前,需加入string.h的標(biāo)頭檔strlen():計(jì)算字串長度strcmp():比較兩個(gè)字串strcpy():將字串一複製到字串二strcat():合併字串一及字串二toupper():將字串內(nèi)容轉(zhuǎn)換成大寫字母tolower():將字串內(nèi)容轉(zhuǎn)換成小寫字母18範(fàn)例Ch9_9(1/2)ch9_9輸入一個(gè)字串,計(jì)算出該字串的長度
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}19Ch9_9輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:Thisisapig字串長度為:13209-3-2strcmp()函數(shù)
語法整數(shù)型態(tài)變數(shù)=strcmp(字串陣列名稱一,字串陣列名稱二);說明整數(shù)型態(tài)變數(shù)0代表兩個(gè)字串相同負(fù)數(shù)及正數(shù)皆表示為不相同字串strcmp()會(huì)將字串一與字串二做一比較,看是否相同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("請輸入第一個(gè)字串:");9gets(str1);22範(fàn)例Ch9_10(2/3)10printf("請輸入第二個(gè)字串:");11gets(str2);12i=strcmp(str1,str2);/*比較str1,str2字串是否相同*/13if(i==0)14printf("輸入的兩個(gè)字串為相同的字串!");15else16printf("輸入的兩個(gè)字串為不相同的字串!");17}23Ch9_10輸出結(jié)果(3/3)程式執(zhí)行結(jié)果請輸入第一個(gè)字串:computer請輸入第二個(gè)字串:computer輸入的兩個(gè)字串為相同的字串!
請輸入第一個(gè)字串:computer請輸入第二個(gè)字串:mouse輸入的兩個(gè)字串為不相同的字串!249-3-3strcpy()函數(shù)
語法strcpy(字串1,字串2);說明字串1:將要被複製成跟字串2相同內(nèi)容的字串字串2:將要複製給字串1的字串
此函數(shù)可將字串2變數(shù)的內(nèi)容拷貝到字串1的內(nèi)容(包含空字元)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("請輸入一字串:");7gets(str2);8printf(“原先內(nèi)定字串1的內(nèi)容為:%s\n”,str1);9strcpy(str1,str2);10printf("複製過後的字串1內(nèi)容為:%s",str1);11}26Ch9_11輸出結(jié)果(2/2)程式執(zhí)行結(jié)果請輸入一字串:Thisismyinput原先內(nèi)定字串1的內(nèi)容為:Thisisanoriginalstring複製過後的字串1內(nèi)容為:Thisismyinput27
9-3-4strcat()函數(shù)
語法strcat(str1,str2);說明str2將會(huì)覆蓋住str1字串的結(jié)束字元'\0',且保留本身的結(jié)束字元'\0'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}
29Ch9_12輸出結(jié)果(2/2)程式執(zhí)行結(jié)果合併前str1內(nèi)容為:Taiwanstr2內(nèi)容為:University合併後str1內(nèi)容為:TaiwanUniversitystr2內(nèi)容為:University
309-3-5toupper()函數(shù)及tolower()函數(shù)
語法陣列名稱[索引值]=tolower(陣列名稱[索引值]);陣列名稱[索引值]=toupper(陣列名稱[索引值]);說明需加入ctype.h的標(biāo)頭擋toupper()函數(shù)可以將字元強(qiáng)制轉(zhuǎn)換成大寫tolower()函數(shù)則可以將字元強(qiáng)制轉(zhuǎn)換成小寫31範(fàn)例Ch9_13(1/3)
ch9_13將輸入的小寫字串轉(zhuǎn)換成大寫,並將輸入的大寫字串轉(zhuǎn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025暫估價(jià)材料公開招標(biāo)合同范本變頻水泵排污泵
- 6~9的認(rèn)識(shí)(說課稿)-2024-2025學(xué)年一年級上冊數(shù)學(xué)人教版
- 2025以買賣合同擔(dān)保
- 2024年秋九年級化學(xué)上冊 第四單元 自然界的水說課稿 (新版)新人教版
- 2023三年級英語上冊 Assessment 3說課稿1 湘少版
- 路基邊坡防滑平臺(tái)施工方案
- Unit 4 My tidy bag Lesson 1 I have a big bag (說課稿)-2024-2025學(xué)年粵人版(2024)英語三年級上冊
- 2023八年級地理上冊 第一章 中國的疆域與人口第一節(jié) 中國的疆域說課稿 (新版)湘教版
- 出租代工合同范例
- 2024年六年級品社下冊《我在聯(lián)合國做報(bào)告》說課稿3 蘇教版
- 高考英語語法填空專項(xiàng)訓(xùn)練(含解析)
- 42式太極劍劍譜及動(dòng)作說明(吳阿敏)
- 英語完形填空練習(xí)題
- 部編版語文小學(xué)五年級下冊第一單元集體備課(教材解讀)
- GB/T 10095.1-2022圓柱齒輪ISO齒面公差分級制第1部分:齒面偏差的定義和允許值
- 仁愛英語九年級下冊單詞表(中英文)
- 危險(xiǎn)化學(xué)品企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化課件
- 巨鹿二中骨干教師個(gè)人工作業(yè)績材料
- 《美的歷程》導(dǎo)讀課件
- 心電圖 (史上最完美)課件
- 建設(shè)工程施工合同糾紛處理課件
評論
0/150
提交評論