程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 重讀gets()與is函數的用法,重讀getsis函數

重讀gets()與is函數的用法,重讀getsis函數

編輯:關於C語言

重讀gets()與is函數的用法,重讀getsis函數


這是從百度百科上查找的資料:

gets():

從stdin流中讀取字符串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字符數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為null值,並由此來結束字符串。

所以用gets來輸入字符串時換行符被讀取(不留在緩沖區),並被系統轉化為null值

所以,下圖是錯誤的用法:

相比之下,而getchar()可以將換行符作為內容:改變一下後為

#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
char c;
int i = 0, j = 0, k = 0, l = 0,m=0;
printf("請輸入一個長度不超過200的字符串: \n");
while ((c=getchar())!= '\n')
{
if(isalpha(c))
j++;
if(isdigit(c))
k++;
if(isspace(c))
l++;
if(ispunct(c))
m++;
}
printf("該字符串的字母個數:%d,數字個數:%d,空格個數:%d,標點個數:%d", j,k,l,m);
return 0;
}

 

不過從這個程序中還是有許多函數可以借鑒:

1.isalpha()

用法:頭文件加入#include (C語言使用<ctype.h>)

功能:判斷字符ch是否為英文字母,當ch為英文字母a-z或A-Z時,則函數返回不是1的值,否則返回0

同理:

isupper
原型:extern int isupper(int c); 
頭文件:<ctype.h>
功能:判斷字符c是否為大寫英文字母 
說明:當參數c為大寫英文字母(A-Z)時,返回非零值,否則返回零。 
附加說明: 此為宏定義,非真正函數。 
islower
islower(測試字符是否為小寫字母) 

2.isdigit

原型:extern int isdigit(char c);
用法:#include <ctype.h>
功能:判斷字符c是否為數字
說明:當c為數字0-9時,返回非零值,否則返回零。
附加說明 此為宏定義,非真正函數。 

3.isspace

表頭文件 
#include<ctype.h>
定義函數 
int isspace(int c)
函數說明 
檢查參數c是否為空格字符,也就是判斷是否為空格(' ')、水平定位字符
('\t')、歸位鍵('\r')、換行('\n')、垂直定位字符('\v')或翻頁('\f')的情況。[1]
返回值 
若參數c為空格字符,則返回TRUE,否則返回NULL(0)。
附加說明 
此為宏定義,非真正函數。

4.ispunct

表頭文件
#include<ctype.h>
定義函數
int ispunct(int c)
函數說明
檢查參數c是否為標點符號或特殊符號。返回TRUE也就是代表參數c為
非空格、非數字和非英文字母。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved