C語言標準庫系列之 -

2021-01-07 二師兄奇聞

C 標準庫的 ctype.h頭文件提供了一些函數,可用於測試和映射字符。

這些函數接受 int作為參數,它的值必須是 EOF 或表示為一個無符號字符。

如果參數 c 滿足描述的條件,則這些函數返回非零(true)。如果參數 c 不滿足描述的條件,則這些函數返回零。

庫函數

下面列出了頭文件 ctype.h 中定義的函數:

實例

下面的實例演示了 isalnum() 函數的用法。

#include <stdio.h>#include <ctype.h>intmain(){intvar1='d';intvar2='2';intvar3='\t';intvar4=' ';if( isalnum(var1) ) {printf("var1 = |%c| 是字母數字\n", var1 ); }else {printf("var1 = |%c| 不是字母數字\n", var1 ); }if( isalnum(var2) ) {printf("var2 = |%c| 是字母數字\n", var2 ); }else {printf("var2 = |%c| 不是字母數字\n", var2 ); }if( isalnum(var3) ) {printf("var3 = |%c| 是字母數字\n", var3 ); }else {printf("var3 = |%c| 不是字母數字\n", var3 ); }if( isalnum(var4) ) {printf("var4 = |%c| 是字母數字\n", var4 ); }else {printf("var4 = |%c| 不是字母數字\n", var4 ); }return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:

var1=|d|是字母數字var2=|2|是字母數字var3=||不是字母數字var4=||不是字母數字下面的實例演示了 isalpha() 函數的用法。

#include <stdio.h>#include <ctype.h>int main(){ int var1 = 'd'; int var2 = '2'; int var3 = '\t'; int var4 = ' '; if( isalpha(var1) ) { printf("var1 = |%c| 是一個字母\n", var1 ); } else { printf("var1 = |%c| 不是一個字母\n", var1 ); } if( isalpha(var2) ) { printf("var2 = |%c| 是一個字母\n", var2 ); } else { printf("var2 = |%c| 不是一個字母\n", var2 ); } if( isalpha(var3) ) { printf("var3 = |%c| 是一個字母\n", var3 ); } else { printf("var3 = |%c| 不是一個字母\n", var3 ); } if( isalpha(var4) ) { printf("var4 = |%c| 是一個字母\n", var4 ); } else { printf("var4 = |%c| 不是一個字母\n", var4 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:

var1 = |d| 是一個字母var2 = |2| 不是一個字母var3 = | | 不是一個字母var4 = | | 不是一個字母

下面的實例演示了 iscntrl() 函數的用法。

#include <stdio.h>#include <ctype.h>intmain (){inti=0, j=0;charstr1[] ="all \a about \t programming";charstr2[] ="w3cschool \n tutorials";/* 輸出字符串直到控制字符 \a */while( !iscntrl(str1[i]) ) {putchar(str1[i]);i++; }/* 輸出字符串直到控制字符 \n */while( !iscntrl(str2[j]) ) {putchar(str2[j]);j++; }return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:

allw3cschool下面的實例演示了 isdigit() 函數的用法。

#include <stdio.h>#include <ctype.h>int main(){ int var1 = 'h'; int var2 = '2'; if( isdigit(var1) ) { printf("var1 = |%c| 是一個數字\n", var1 ); } else { printf("var1 = |%c| 不是一個數字\n", var1 ); } if( isdigit(var2) ) { printf("var2 = |%c| 是一個數字\n", var2 ); } else { printf("var2 = |%c| 不是一個數字\n", var2 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:

var1 = |h| 不是一個數字var2 = |2| 是一個數字下面的實例演示了 isgraph() 函數的用法。

#include <stdio.h>#include <ctype.h>int main(){ int var1 = '3'; int var2 = 'm'; int var3 = ' '; if( isgraph(var1) ) { printf("var1 = |%c| 是可列印的\n", var1 ); } else { printf("var1 = |%c| 是不可列印的\n", var1 ); } if( isgraph(var2) ) { printf("var2 = |%c| 是可列印的\n", var2 ); } else { printf("var2 = |%c| 是不可列印的\n", var2 ); } if( isgraph(var3) ) { printf("var3 = |%c| 是可列印的\n", var3 ); } else { printf("var3 = |%c| 是不可列印的\n", var3 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:

var1 = |3| 是可列印的var2 = |m| 是可列印的var3 = | | 是不可列印的下面的實例演示了 islower() 函數的用法。

#include <stdio.h>#include <ctype.h>int main(){ int var1 = 'Q'; int var2 = 'q'; int var3 = '3'; if( islower(var1) ) { printf("var1 = |%c| 是小寫字母\n", var1 ); } else { printf("var1 = |%c| 不是小寫字母\n", var1 ); } if( islower(var2) ) { printf("var2 = |%c| 是小寫字母\n", var2 ); } else { printf("var2 = |%c| 不是小寫字母\n", var2 ); } if( islower(var3) ) { printf("var3 = |%c| 是小寫字母\n", var3 ); } else { printf("var3 = |%c| 不是小寫字母\n", var3 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:

var1 = |Q| 不是小寫字母var2 = |q| 是小寫字母var3 = |3| 不是小寫字母下面的實例演示了 isprint() 函數的用法。

#include <stdio.h>#include <ctype.h>int main(){ int var1 = 'k'; int var2 = '8'; int var3 = '\t'; int var4 = ' '; if( isprint(var1) ) { printf("var1 = |%c| 是可列印的\n", var1 ); } else { printf("var1 = |%c| 是不可列印的\n", var1 ); } if( isprint(var2) ) { printf("var2 = |%c| 是可列印的\n", var2 ); } else { printf("var2 = |%c| 是不可列印的\n", var2 ); } if( isprint(var3) ) { printf("var3 = |%c| 是可列印的\n", var3 ); } else { printf("var3 = |%c| 是不可列印的\n", var3 ); } if( isprint(var4) ) { printf("var4 = |%c| 是可列印的\n", var4 ); } else { printf("var4 = |%c| 是不可列印的\n", var4 ); } return(0);} 讓我們編譯並運行上面的程序,這將產生以下結果:

var1 = |k| 是可列印的var2 = |8| 是可列印的var3 = || 是不可列印的var4 = | | 是可列印的下面的實例演示了 ispunct() 函數的用法。

#include <stdio.h>#include <ctype.h>int main(){ int var1 = 't'; int var2 = '1'; int var3 = '/'; int var4 = ' '; if( ispunct(var1) ) { printf("var1 = |%c| 是標點符號字符\n", var1 ); } else { printf("var1 = |%c| 不是標點符號字符\n", var1 ); } if( ispunct(var2) ) { printf("var2 = |%c| 是標點符號字符\n", var2 ); } else { printf("var2 = |%c| 不是標點符號字符\n", var2 ); } if( ispunct(var3) ) { printf("var3 = |%c| 是標點符號字符\n", var3 ); } else { printf("var3 = |%c| 不是標點符號字符\n", var3 ); } if( ispunct(var4) ) { printf("var4 = |%c| 是標點符號字符\n", var4 ); } else { printf("var4 = |%c| 不是標點符號字符\n", var4 ); } return(0);} 讓我們編譯並運行上面的程序,這將產生以下結果:

var1 = |t| 不是標點符號字符var2 = |1| 不是標點符號字符var3 = |/| 是標點符號字符var4 = | | 不是標點符號字符下面的實例演示了 isspace() 函數的用法。

#include <stdio.h>#include <ctype.h>int main(){ int var1 = 't'; int var2 = '1'; int var3 = ' '; if( isspace(var1) ) { printf("var1 = |%c| 是空白字符\n", var1 ); } else { printf("var1 = |%c| 不是空白字符\n", var1 ); } if( isspace(var2) ) { printf("var2 = |%c| 是空白字符\n", var2 ); } else { printf("var2 = |%c| 不是空白字符\n", var2 ); } if( isspace(var3) ) { printf("var3 = |%c| 是空白字符\n", var3 ); } else { printf("var3 = |%c| 不是空白字符\n", var3 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:

var1 = |t| 不是空白字符var2 = |1| 不是空白字符var3 = | | 是空白字符下面的實例演示了 isupper() 函數的用法。

#include <stdio.h>#include <ctype.h>int main(){ int var1 = 'M'; int var2 = 'm'; int var3 = '3'; if( isupper(var1) ) { printf("var1 = |%c| 是大寫字母\n", var1 ); } else { printf("var1 = |%c| 不是大寫字母\n", var1 ); } if( isupper(var2) ) { printf("var2 = |%c| 是大寫字母\n", var2 ); } else { printf("var2 = |%c| 不是大寫字母\n", var2 ); } if( isupper(var3) ) { printf("var3 = |%c| 是大寫字母\n", var3 ); } else { printf("var3 = |%c| 不是大寫字母\n", var3 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:

var1 = |M| 是大寫字母var2 = |m| 不是大寫字母var3 = |3| 不是大寫字母下面的實例演示了 isxdigit() 函數的用法。

#include <stdio.h>#include <ctype.h>int main(){ char var1[] = "tuts"; char var2[] = "0xE"; if( isxdigit(var1[0]) ) { printf("var1 = |%s| 是十六進位數字\n", var1 ); } else { printf("var1 = |%s| 不是十六進位數字\n", var1 ); } if( isxdigit(var2[0] )) { printf("var2 = |%s| 是十六進位數字\n", var2 ); } else { printf("var2 = |%s| 不是十六進位數字\n", var2 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:

var1 = |tuts| 不是十六進位數字var2 = |0xE| 是十六進位數字標準庫還包含了兩個轉換函數,它們接受並返回一個 "int"

下面的實例演示了 tolower() 函數的用法。

#include <stdio.h>#include <ctype.h>int main(){ int i = 0; char c; char str[] = "W3CSCHOOL TUTORIALS"; while( str[i] ) { putchar(tolower(str[i])); i++; } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:

w3cschool tutorials下面的實例演示了 toupper() 函數的用法。

#include <stdio.h>#include <ctype.h>int main(){ int i = 0; char c; char str[] = "W3Cschool Tutorials"; while(str[i]) { putchar (toupper(str[i])); i++; } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:

W3CSCHOOL TUTORIALS字符類

最編程,懂編程,更懂世界!

相關焦點

  • C語言常用標準庫
    下面就來分享一下C語言常見的一些標準庫。標準頭文件包括:<asset.h> <ctype.h> <errno.h> <float.h> <limits.h> <locale.h> <math.h> <setjmp.h> <
  • C語言常用標準庫解讀
    下面就來分享一下C語言常見的一些標準庫。標準頭文件包括:<asset.h> <ctype.h> <errno.h> <float.h><limits.h> <locale.h> <math.h> <setjmp.h><signal.h
  • C語言這些常用的標準庫,你不得不知道...
    下面就來分享一下C語言常見的一些標準庫。標準頭文件包括:<asset.h> <ctype.h> <errno.h> <float.h><limits.h> <locale.h> <math.h> <
  • 【收藏向】C語言常用標準庫匯總
    今天大雄就來分享一下C語言常見的一些標準庫。方便大家更加系統地理解C語言。下面咱們就開始咯!標準頭文件包括:<asset.h> <ctype.h> <errno.h> <float.h><limits.h> <locale.h> <math.h> <setjmp.h>
  • C語言常用標準庫匯總,你不得不知道......
    今天就來分享一下C語言常見的一些標準庫。方便大家更加系統地理解C語言。下面咱們就開始咯!標準頭文件包括:<asset.h> <ctype.h> <errno.h> <float.h><limits.h> <locale.h> <math.h> <setjmp.h>
  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言數據類型
    所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。第一節
  • C語言這些常用的標準庫(頭文件),你不得不知道...
    下面小編就來分享一下C語言常見的一些標準庫。標準頭文件包括:<asset.h><ctype.h><errno.h><float.h><limits.h><locale.h><math.h><stdio.h><signal.h><time.h><stddef.h>
  • C語言實操:用C語言實現隨機抽取紙牌
    程序需要用戶指明手機有幾張牌,格式為:Enter number of cards in hand:____your hand: _二、原理1.使用庫函數time函數返回當前時間,用一個數表示,srand函數初始化C語言的隨機數生成器。
  • C++標準庫和std命名空間
    stdlib.h包含了C語言的中最常用的系統函數。string.h包含了C語言的最常用的字符串操作函數。ctype.h主要提供兩類重要的函數:字符測試函數和字符大小轉化函數。assert.h提供C語言斷言功能,唯一的目的是提供宏assert的定義。limits.h指明了基本數據類型的取值範圍。stddef.h定義了一些標準定義,許多定義也會出現在其他的頭文件裡。
  • C++之標準庫的學習總結
    0000 0001   演變成      0000 0100重載左移操作符,將變量或者常量左移到一個對象中代碼示例:#include <stdio.h二、c++標準庫:1、標準庫的特性:2、C++編譯環境的組成:
  • 快速上手系列-C語言之字符處理函數
    是數字、標點、空格等,原型輸出,並列印提示是小寫字符的,轉換為大寫並輸出是大寫字符的,轉化為小寫並輸出注意,這裡使用的是getch(),需要包含頭文件conio.h,這裡在使用isdigit()、isupper()、islower()、isspace()、ispunct()等庫函數時需要包含頭文件ctype.h。還有更多的字符處理函數,這裡就不多說了。
  • C語言strcmp和strcpy的用法
    二、c語言strcpy()用法C語言 strcpy() 函數用於對字符串進行複製(拷貝)。頭文件:string.h語法/原型:char* strcpy(char* strDestination, const char* strSource);參數說明:strDestination:目的字符串。
  • 標準庫函數與基於HAL庫函數
    一、標準庫STM32有非常多的寄存器,導致了開發困難,所以為此ST公司就為每款晶片都編寫了一份庫文件,也就是工程文件裡stm32F1xx……之類的。在這些 .c .h文件中,包括一些常用量的宏定義,把一些外設也通過結構體變量封裝起來,如GPIO口時鐘等。所以我們只需要配置結構體變量成員就可以修改外設的配置寄存器,從而選擇不同的功能。
  • 手把手入門硬核c STD
    哈嘍 大家好 我叫人宅 很高興和大家一起分享一下我們的這套教程 C STD(底層c語言標準庫)。
  • 想替代C的Zig語言成立了基金會
    Today, I am proud to announce the Zig Software Foundation, a 501(c)(3) not-for-profit corporation, dedicated to promoting, protecting, and advancing the Zig programming language, supporting
  • 教你輕鬆學習C語言系列之——從「Hello World」開始夢想起航
    第二:信息學奧賽主要程式語言是C++語言,如果學生有了C語言的基礎,學習和理解C++語言就不會那麼很難了。可以為後期的學習打下良好紮實的基礎。在電腦上有許多性能良好的商品C 語言系統可用。包括Turbo C、Borland C/C++;Microsoft Visual C/C++ 等。C語言屬於高級程式語言,經典的結構化的程序設計語言。所謂高級語言,就是人類能夠讀得懂語言。
  • 數據結構(C語言版)課本源碼| 緒論
    YI時間|外刊閱讀及長難句|MM-DFW|機器學習系列點擊上方藍字,關注給你寫乾貨的松子茶
  • C語言中getchar()、getche()和getch()函數的區別
    ===Tips:點擊上方 藍字 關注並查看歷史消息=== getchar()函數是C語言專門為輸入單個字符而提供的
  • C語言項目中.h和.c文件的關係和概念
    在編譯器只認識.c(.cpp))文件,而不知道.h是何物的年代,那時的人們寫了很多的.c(.cpp)文件,漸漸地,人們發現在很多.c(.cpp)文件中的聲明語句就是相同的。
  • C語言簡明教程(一)C語言簡單剖析
    在C語言編譯器中新建一個文檔,命名為 1.1.c,輸入一下代碼:(我用的是VSCode,大家可以用其他的,編程的本質是不變的)#include<stdio.h>創建 C 程序的各個過程:C 語言的簡單結構預處理指令shiyanlou.c 的第一行代碼如下:嚴格地說,它不是可執行程序的一部分,但它很重要,它是 C 語言中的標準輸入輸出庫,程序沒有它將不能做任何輸入輸出