C語言isgraph()函數:判斷一個字元是否是圖形字元

2020-07-16 10:04:51
C語言 isgraph() 函數用來檢測一個字元是否是圖形字元。

在可列印字元(isprint() 返回“真”的字元)中,絕大部分字元既會佔用一個字元位置,又會在螢幕上顯示出來,這些字元就是圖形字元。但是有個別的字元只佔用位置卻不顯示,在 ASCII 編碼中,這樣的字元只有一個,就是空格(' ')。

對於計算機來說,我們在顯示器上看到的所有元素(包括圖片、文字、背景、動畫等)其實都是圖形,計算機都需要把它們繪製出來,只不過文字和圖片在操作上有很大的不同,我們在使用時一般不會將文字作為圖形對待。

我們說一個字元是圖形字元,就是說這個字元需要在顯示器上繪製出來,而空格、換行、Tab 縮排等字元只會占用輸出的位置,不需要繪製。

語法/原型:

int isgraph(int c);

引數 c 表示要檢測的字元。

返回值:返回值為非 0(真)表示 c 是圖形字元,返回值為 0(假)表示 c 不是圖形字元。

【範例】輸出一個文字檔案中所有的圖形字元。
#include <stdio.h>
#include <ctype.h>
int main ()
{
    FILE * pFile;
    int c;
    pFile=fopen ("log.txt","r");
    if (pFile)
    {
        do {
            c = fgetc (pFile);
            if (isgraph(c)) putchar (c);
        } while (c != EOF);
        fclose (pFile);
    }
}
這段程式碼使用 do-while 迴圈來遍歷 demo.txt 中的所有字元,如果當前字元是圖形字元,那麼就輸出,否則就不輸出。