字符串和格式化輸入/輸出

  1. 字符串簡介

       字符串:一個或多個字符的序列;雙引號不是字符串的一部分,只是通知編輯器其中包含了一個字符串。

       ①char數組類型和空字符

         字符串的字符存放在相鄰的存儲單元中,每個字符佔用一個單元;

         數組中的最後一個位置顯示字符\0,就是空字符,用來表示字符串的結束;

         空字符不是數字0,是非打印字符,其ASCII碼值爲0

         數組:同一類數據元素的有序序列;

       ②使用字符串

         %s:打印一個字符串;

         Scanf()在讀取輸入後,遇到第一個空白字符空格,製表符或換行符處停止讀取(一般使用%sscanf()只會讀一個單詞而不是整個句子作爲字符串輸入

         字符串與數組區別:x”與‘x’,‘x’屬於基本類型char,“x”屬於派生類char數組;另外“x”由兩個字符組成‘x’和‘、0’。

    strlen():以字符爲單位給出字符串的長度;使用字符串相關函數時,要使用頭文件string.hsizeof運算符提供給的數目比字符串大一,因爲包含終止作用的空字符。

  2. 常量與C預處理器

       定義常量:#define符號名 (值);(儘量大寫常量,使之更易閱讀)

       符號常量所用的名字必須滿足變量命名原則,可使用大寫和小寫字母、數字和下劃線,第一個字符不能是數字。

    #define可用於定義字符或字符串常量。

    常見錯誤:#define TOES = 20TOES會被=20替代而不是20

    const修飾符:const關鍵字把一個變量聲明轉換成一個常量聲明;例:const int MONTHS=12使MONTHS成爲一個只讀值,但不能改變其值。

    ②系統定義的明顯常量

      頭文件Limits.hfloat.h提供有關整數類型和浮點類型的大小 限制的詳細信息。

  3. 研究和利用printf()和scanf()

      ①printf()中的轉換說明符

    %a%A:浮點數、十六進制數和p-計數法;

    %c:一個字符;

    %d%i):有符號十進制數;

    %e%E:浮點數、e-計數法;

    %f:浮點數、十進制計數法;

    %o:無符號八進制;

    %p:指針;

    %s:字符串;

    %u:無符號十進制數;

    %x%X:使用十六進制數字0f的無符號十六進制整數;

    %%:打印一個百分號;

      ②printf()修飾符

    標誌:(—、+、空格、#0)可使用多個或無,例:%-10d

    digits):字段寬度的最小值,例:%4d

    .digits):精度,例:%5.2f,打印一個浮點數,字符段寬度爲5個字符,小數點後有兩個數字;

    還有hhhjlllLtz

    printf()的標誌:—:項目是左對齊;+:有符號的值若爲正,則帶加號,若爲負,則帶減號;(空格):有符號正數,可帶前導空格;#:使用轉換說明的可選形式;0:前導零;

    printf()的返回值

      返回值可用於賦給一個變量,也可用於計算,或作爲參數。

      printf()函數也有一個返回值,返回所打印字符數目,若輸出錯誤,會返回一個負值。

      打印較長字符串:法一:多個printf()語句,最後一個纔有\n

          法二:用反斜槓/和回車鍵來結束第一行,下一行必須從最左邊開始(無空格);

          法三:字符串連接方法,二者之間用空白符分隔。


     ④scanf()簡單規則:讀取基本變量類型值,前面加&;把一個字符串讀進字符數組中,不用&。


     scanf()轉換說明符:%c:一個字符;

                           %d%i:有符號十進制數;

                           %o:有符號八進制;

                           %e%f%g%a%E%F%G%A:浮點數;

                           %p:指針;

                           %s:字符串(以第一個非空白字符開始,到下一個空白字符);

                           %u:無符號十進制;

                           %x%X:有符號十六進制;

    scanf()函數允許把普通字符放在格式字符串中,除了空格字符之外的普通字符一定要與輸入字符串準確匹配。

    “任何空格”的概念包含沒有空格的特殊情況。

       ⑤printf()和scanf()的*修飾符

         都可用*修飾符來修飾說明符的意義;

         printf():在字符寬度部分使用*代替數字,但必須使用一個參數告訴函數字段寬度應該是什麼;



       




發佈了47 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章