C語言 字元測試篇

來源:互聯網
上載者:User
字元測試篇

        本人原本無意寫部落格,不過由於某同齡女生的刺激,開了這個部落格.本人很菜,不過貴在堅持.必然有不足之處,還請大家改正.

                 

                     談到字元就不的不說下電腦的識別問題。我們知道電腦僅僅只是能識別二進位。

        比如一個能識別32位的系統,代表什麼意思呢,能得到什麼樣的資訊?在電腦群組成原理裡面對著個討論的比較多。它代表電腦的CPU一次能處理32位。即系統的地址匯流排是32根,說的再通俗點就是CPU插著32根電線,每根電線都能表示1或0.那麼在機率上有多少種相片順序呢?就是2的32次種排列。那麼著又代表著什麼呢?

            那麼這裡就又不得不談到單位問題了。

         1K = 1024bit

         1M = 1024K

         1G = 1024M

           那麼2的32次就 = 4G 這個東西就是32記憶體的大小了。至於為什麼那就簡單了,你想想CPU肯定是訪問記憶體的(當然這裡還有cache不過暫時不討論)那麼CPU能最大訪問多少的記憶體空間呢?就是4G了,CPU最大隻能訪問4G那麼你記憶體沒理由比這個還大把(其實記憶體就是根據32根地址線來造的),再大CPU都訪問不了了哪有什麼用。

         偏題有點遠了。一個32位分成4份,每份8位,叫一個位元組1byte = 8bit.至於為什麼這樣分呢?我認為這是為了滿足鍵盤上的字元,譚浩強上的書寫著前127是標準字元,後面的是IBM用的。管它的什麼東西,子要知道8位可以表示任何的字元。少了不夠,多了浪費.再者因為電腦天生只有2根手指頭,必須是2個指數。於是乎就8位一個位元組了。因為8位二進位是給機器看的,人看的太累了,於是就用ASCII來表示8位,就產生了字元。。。。。。。。

        

        撤了這麼多現在才開始真正的代碼不過都很簡單的~ _ ~

        首先大家應該要知道在C中字元測試的函數其實是宏函數。就是通過宏來定義的

        都要通過#include <ctype.h>標頭檔

 

1      isdigit  這個是測試是否是數字

        #define isdigit(ch) ((ch) > '0' && (ch) < '9')

 

2      islower 這個是測試是否是小寫字母  

        #define islower(ch) ((ch) > 'a' && (ch) < 'z')

 

3      isupper 測試是否是大寫字母

        #define isupper(ch) ((ch) > 'A' && (ch) < 'Z')

 

4      isAlpha 測試是否是字母

        #define isalpha(ch) (isupper(ch) || islower(ch))

 

5      isalnum 測試是否是數字或字母

        #define isalnum(ch) (isdigit(ch) || isalpha(ch))

 

6      isascii 測試是否是0到127之間的字元

        #define isascii(ch) ((ch) > 0 && (ch) < 128)

 

7      iscntrl 測試是否是0到30之間的字元

        #define iscntrl(ch) ((ch) > 0 && (ch) < 31)

 

8      isspace 測試是否為空白格字元(空白字元包括' ' ,'\t' ,'\r' ,'\n','\v','\f')暈我也才看到

        #define isspace(ch) ((ch) == '\t' || (ch) == ' ' || (ch) == '\r' || (ch) == '\n' || (ch) == '\v' || (ch) == '\f')

 

9      ispunct 測試是否是標點符號或特殊符號,就是非空格,非數字,非英文

        #define ispunct(ch) (!isspace(ch) && !isdigit(ch) && !isalpha(ch))

 

10    isxdigit 測試是否是16進位數

        #define ispunct(ch) (isdigit(ch) || ((ch) >= 'a' && <= 'f') || ((ch) >= 'A' && (ch) <= 'F'))

 

11    isgraphis 測試是否是可以列印的字元且非空白字元。我悶了,還真不知道。如果有誰知道告訴我下

 

12    isprint 測試是否是可以列印的字元可以列印空格 還是不知道。

 

第一次寫,寫的不好是必然的。。。。。。。

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.