版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版實習(xí)指導(dǎo)教師專業(yè)素養(yǎng)提升項目勞動合同規(guī)范3篇
- 2025版公益宣傳活動宣傳品制作及推廣合同2篇
- 2025版住宅小區(qū)地下車庫車位租賃及維護服務(wù)合同范本2篇
- 2025版木工班組智能化設(shè)備引進與應(yīng)用合同4篇
- 企業(yè)對人才需求談職業(yè)
- 2025年度個人房產(chǎn)維修勞務(wù)合同范本4篇
- 二零二五年度股權(quán)并購與國際化布局合同3篇
- 2025版國際貿(mào)易采購合同(原材料)3篇
- 民政局2025年度自愿離婚協(xié)議書財產(chǎn)分割與子女撫養(yǎng)協(xié)議范本4篇
- 基于2025年度需求的冷卻塔設(shè)計、安裝與調(diào)試服務(wù)合同2篇
- 四川省成都市武侯區(qū)2023-2024學(xué)年九年級上學(xué)期期末考試化學(xué)試題
- 教育部《中小學(xué)校園食品安全和膳食經(jīng)費管理工作指引》知識培訓(xùn)
- 初一到初三英語單詞表2182個帶音標(biāo)打印版
- 2024年秋季人教版七年級上冊生物全冊教學(xué)課件(2024年秋季新版教材)
- 環(huán)境衛(wèi)生學(xué)及消毒滅菌效果監(jiān)測
- 2024年共青團入團積極分子考試題庫(含答案)
- 碎屑巖油藏注水水質(zhì)指標(biāo)及分析方法
- 【S洲際酒店婚禮策劃方案設(shè)計6800字(論文)】
- 鐵路項目征地拆遷工作體會課件
- 醫(yī)院死亡報告年終分析報告
- 中國教育史(第四版)全套教學(xué)課件
評論
0/150
提交評論