1 / 21

第4章 字串及資料的輸入/輸出格式

第4章 字串及資料的輸入/輸出格式. 本章的範例之一 範例4.1 talkback.c. 使用陣列來處理字串。 使用% s 來處理輸出、輸入字串。 使用 scanf() 函數時,前面必需加上一個&符號。 使用 C 的前置處理程式來定義 DENSITY 符號常數,並以此表示數值62.4。 使用 C 的 strlen() 函數來取得字串的長度。. 字串的介紹. 字串是由一個或多個字元所形成的。 “ Zing went the strings of my heart ! ” 雙引號非字串的一部份,它是用來告訴編 譯程式:雙引號裡的內容是一個字串。.

hope
Download Presentation

第4章 字串及資料的輸入/輸出格式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第4章 字串及資料的輸入/輸出格式

  2. 本章的範例之一 範例4.1 talkback.c • 使用陣列來處理字串。 • 使用%s來處理輸出、輸入字串。 • 使用scanf()函數時,前面必需加上一個&符號。 • 使用C的前置處理程式來定義DENSITY符號常數,並以此表示數值62.4。 • 使用C的strlen()函數來取得字串的長度。

  3. 字串的介紹 字串是由一個或多個字元所形成的。 “Zing went the strings of my heart !” 雙引號非字串的一部份,它是用來告訴編 譯程式:雙引號裡的內容是一個字串。

  4. Z i n g w e n t t h e s t r i n g s o f m y ! \0 Char型態的陣列和NULL字元 每一格為一個位元組 Null字元 在儲存陣列字串的陣列當中,必需保留一個位置,用來儲存NULL,所以,陣列長度至少要比它所儲存的字串長度多一個字元。

  5. 什麼是陣列 • 可以被想像成一連串的記憶體位置,陣列是由某種特定型態的資料所組成的序列。 char name[40];

  6. 如何使用字串1 • 範例4.2 praise1.c字串的輸入與輸出

  7. 如何使用字串2 • 當它讀到一個空的資料、跳格符號、或換行符號,就會停止讀取。 • scanf()使用%S時,表示讀取一個字串。

  8. strlen()函數 • strlen()函數可回傳字串中有多少字元。 範例4.3 praise2.c 代表結束的null字元 5個字元 沒有功用的空間 T u f f y \0 strlen()知道什麼時候要停止計算字串長度

  9. 常數及C的前置處理程式 • 假設程式中有許多地方都使用同一常數,而現在必須更改常數的值(例如稅率),此時只要更改符號常數的定義即可,並不需要一一修改程式中使用了此常數的所有敘述。範例4.4 pizza.c

  10. #define也可以用在字元及字串方面的函數:字元會配合單引號使用,而字串配合雙引號來使用。#define也可以用在字元及字串方面的函數:字元會配合單引號使用,而字串配合雙引號來使用。 • 符號常數名稱的命名規則和變數名稱的命名規則是一樣的。

  11. const 修飾符號 • 也可利用const產生符號常數const int MONTHS = 12;如此一來,MONTHS會變成一個唯讀的數值,您可以輸出MONYHS,或在運算式中使用它,不過就是不能改變MONTHS的值。

  12. 符號常數 • C的limits.h和float.h標頭檔,分別提供關於整數型態和浮點數型態的大小詳細限制,這些檔案定義了許多實作上會運用到的符號常數。 • 表4.1為在limits.h中所定義的一些常數。表4.2為float.h中所定義的一些常數。

  13. 探索及使用printf()和scanf() • printf()和scanf()函數可用來跟程式溝通,它們稱為輸入/輸出函數(Input/Output function),或簡稱I/O函數(I/O function)。

  14. printf()函數 • 使用printf()來輸出變數時,必須傳給printf()一個變數型態。例如整數使用%d,輸出字元時則使用%c。 • 表4.3 轉換規格符號及其輸出結果。

  15. 使用printf() printf("you look great in %s\n",color);

  16. 在printf()中轉換規格符號的修飾字元 • 表4.4 、4.5列出可使用的修飾字元。 • 常用的有以下幾種:數字:例如%4d 要顯示的數字或字串長度限制。旗標:例如%-20s字串靠左對齊。l : 例如:%ld,可表示long int。

  17. scanf()函數 • Scanf()可將輸入的字串轉成許多不同的形式,例如整數、浮點數、字元或字串,他所作的工作剛好和printf()相反,printf()是把整數、浮點數、字元和字串都轉成文字,然後再輸出到螢幕上。 • 使用scanf()讀取資料,並指定給變數時,只要再變數名稱前加上一個&即可。

  18. scanf()函數 • 範例4.14 input.cscanf()函數使用空白符號(換行字元、跳格字元、和空白字元)來區分輸入資料。

  19. 格式串列中固定的字元 • 如果不小心將逗號放在兩個轉換符號中間,如下: scanf(“%d,%d”,&n,&m); 此時scanf將認定輸入方式為先輸入一個數字,再輸入一個逗號,最後再輸入第二個數字。

  20. printf()的修飾字元* • 假設不想立刻在程式裡設定輸入的最大長度,而是要稍後再作設定的話,此時可在轉換符號裡使用*,不過還是必須以傳參數的方式告訴printf()最大的輸入長度是多少;也就是說,當使用%*d時,後面的參數必須指定*的數值和d所需要的數值,這種方式也可用於浮點數,以這種方式可設定其精確度,如範例4.15。

  21. Scanf()的修飾字元* • 在scanf()中使用*效果就不同了;在%和轉換字母間加入*,將會造成函數洛過所對應的輸入資料,如範例4.16所示。

More Related