C程式设计字元与字串.ppt
文本预览下载声明
C 程式設計— 字元與字串 台大資訊工程學系 資訊系統訓練班 課程大綱 C語言簡介 基本資料型態, 變數, 基本輸入輸出 控制敘述- 選擇控制與重覆控制 陣列 函式 指標 字元與字串 結構 檔案處理 本次課程大綱 字元函式 函式型態轉換 字串輸入輸出 字串函式 字元與字串 字元 1 byte 字串 字元陣列 字元輸入輸出函式 getch(); getche(); getchar(); 代表由鍵盤輸入一個字元. getche()代表輸入字元時會印在螢幕上, getch()則不會. getchar()則是要按Enter鍵才代表資料輸入完成,並且輸入的字元會顯示在螢幕上 例子 putch() 和 putchar(). 例子: 字元函式 字串的定義 所謂字串就是由一群字元構成的字元陣列, 但為了區別字串與一般字元陣列,因此在字元陣列末端加上一個’\0’字元碼,程式一旦讀到’\0’這個字元時,C語研將認定其為字串,同時也意謂著字串的結束. 下面這三個有啥不同? char str[]=“String”; char str[] = {‘S’,’t’,’r’,’i’,’n’,’g’,’\0’}; char ch_array = {‘S’,’t’,’r’,’i’,’n’,’g’}; 字串的宣告 宣告字串就跟宣告字元陣列一樣,必須保留’\0’字元所須的空間. 有兩種宣告字串的方式: char str[]=“String”; char str[] = {‘S’,’t’,’r’,’i’,’n’,’g’,’\0’}; 例子:輸出字串中每一元素在記憶體的位址 例子:建立一個存放星期名稱的字串, 並且將之輸出. 字串轉數值 標頭檔 : stdlib.h 例子 字串的處理函式 C語言提供字串的輸入出函式, 在使用前,必須在程式之前引入stdio.h這個標頭檔. C語言提供使用者許多字串處理的函式, 在使用前,必須在程式之前引入string.h這個標頭檔. 字串的輸入 scanf()跟gets() scanf()一旦讀到空白時,將會結束讀取動作,因此scanf()無法讀取含有空白間隔的字串; gets()在讀取字串時, 只有在碰到跳行字元’\n’時,才會結束停止的動作 例子1: scanf() 例子2: gets() 字串的輸出 printf()跟puts() puts()一次輸出一個字串,並且不具格式化的輸出,此外輸出完字串後,還會再印出跳行字元’\n’. 例子: 以gets()輸入字串, 再以puts()輸出字串. strlen() #include string.hsize_t strlen(const char *s); 計算字串的長度,其單位長度以一個byte為單位,但不包括’\0’這個字元. 例子: 輸入一個字串, 計算出該字串的長度. strcmp() #include string.hint strcmp(const char *s1, const char *s2); 比較兩個字串str1跟str2,比較其內容是否相同,若相同,則傳回0; 若不同,則比較兩個字串第一個不同字元的ASCII碼,若str1str2,則傳回正數,反之,則傳回負數. 例子:設計一個程式,檢查輸入的字串是否相同. strncmp( ) #include string.hint strncmp(const char *s1, const char *s2, size_t n); 比較s1、s2字串的前n個字元是否相等 練習:改寫上個程式,只比較前3個字元 strcpy() #include string.hchar *strcpy(char *dest, const char *src); 將src字串內容複製到dest字串中(包含空字元). 例子:使用者輸入一個字串,程式會將該字串覆蓋原程式內定的字串. strcat() #include string.h char *strcat(char *dest, const char *src); 將src字串內容連結到dest字串的結尾,覆蓋src字串的空字元’\0’,並且保留本身的’\0’. 例子:使用strcat()函數,將兩個字串合併為一,並且將之輸出. strtok( ) #include string.h char *strtok(char *s, const char *delim); delim為分隔字元,s為欲切割的字串來源 將s字串中所出現的特殊字元(在delim字串中指定這些字元)當作分隔符號,將字串s切割成許多的token並一一回傳這些token,直到遇見指標字串的NULL為止(通常需配合迴圈將這些token取出)
显示全部