C语言--isspace()函数实现
生活随笔
收集整理的這篇文章主要介紹了
C语言--isspace()函数实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
??c語言中有很多處理string類型的函數,今天簡單的使用了一下isspace()函數,自我實現調用了一下。
Isspace()函數
??包含在ctype.h頭文件中
函數原型:
int isspace(int c);
函數功能
??判斷輸入字符是否為空格/回車/制表符等
函數參數:
??獲取實參char類型的字符
函數返回值:
??如果獲取到的字符是空格/回車/制表符等,返回非0值(即真);否則返回0
實例一:調用頭文件直接使用isspace()函數
1 #include<stdio.h>
2 #include<ctype.h>
3 int main(void)
4 {
5 char arr[32]=" hello world ";
6 printf("<%s>
", arr);
7 char*r = arr;
8 char*p = r;
9 char*q = arr + strlen(arr)-1;
10 while(isspace(*p))
11 p++;
12 while(isspace(*q))
13 q--;
14 while(p <= q)
15 *r++=*p++;
16 *r ='';
17 printf("<%s>
", arr);
18 return0;
19 }
實例二:根據函數原型,自己實現isspace()函數
1 int myIsspace(char c)
2 {
3 if(c ==' '|| c =='
'|| c ==' ')
4 return1;
5 else
6 return0;
7 }
??在直接調用isspace()函數時,要謹慎使用,在不同的操作平臺上,可能會有崩潰行為,建議自己實現一個isspace()函數。
錯誤如下:
??拓展:
??這里我調用isspace()函數主要實現消除字符串兩邊的空格或者其他符號,例如:"??hello heima??"消除空格之后的格式為:"hello heima"
??消除實現思想:
??1. 定義兩個指針p,q分別指向字符串頭和尾;
??2. 再創建一個臨時指針r來存放字符串數組arr的首地址:
??3. p,q遇見空格就p++和q–;一直循環直至非空。
??如圖:
??
具體實現Demo:(這里使用自定義isspace()函數)
1 #include<stdio.h>
2 #include<string.h>
3 int myIsspace(char c)
4 {
5 if(c ==' '|| c =='
'|| c ==' ')
6 return1;
7 else
8 return0;
9 }
10 int main(void)
11 {
12 char arr[32]=" hello world ";
13 printf("<%s>
", arr);
14 char*r = arr;
15 char*p = r;
16 char*q = arr + strlen(arr)-1;
17 while(myIsspace(*p))
18 p++;
19 while(myIsspace(*q))
20 q--;
21 while(p <= q)
22 *r++=*p++;
23 *r ='';
24 printf("<%s>
", arr);
25 return0;
26 }
??消除結果如下所示:
總結
以上是生活随笔為你收集整理的C语言--isspace()函数实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大神教你如何升级内存如何升级电脑内存
- 下一篇: 电脑的dwg文件怎么打开如何打开电脑