C語言--isspace()函數實現

  c語言中有不少處理string類型的函數,今天簡單的使用了一下isspace()函數,自我實現調用了一下。數組

Isspace()函數

  包含在ctype.h頭文件中
函數原型:函數

  1. int isspace(int c);

函數功能
  判斷輸入字符是否爲空格/回車/製表符等
函數參數:
  獲取實參char類型的字符
函數返回值:
  若是獲取到的字符是空格/回車/製表符等,返回非0值(即真);不然返回0spa

實例一:調用頭文件直接使用isspace()函數

  1.  1 #include<stdio.h>
     2 #include<ctype.h>
     3 int main(void)
     4 {
     5     char arr[32]=" hello world ";
     6     printf("<%s>\n", 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 ='\0';
    17     printf("<%s>\n", arr);
    18     return0;
    19 }

     


實例二:根據函數原型,本身實現isspace()函數

  1. 1 int myIsspace(char c)
    2 {
    3     if(c =='\t'|| c =='\n'|| c ==' ')
    4         return1;
    5     else
    6         return0;
    7 }

  在直接調用isspace()函數時,要謹慎使用,在不一樣的操做平臺上,可能會有崩潰行爲,建議本身實現一個isspace()函數。指針


錯誤以下:

  拓展:

  這裏我調用isspace()函數主要實現消除字符串兩邊的空格或者其餘符號,例如:"  hello heima  "消除空格以後的格式爲:"hello heima"code

  消除實現思想:
  1. 定義兩個指針p,q分別指向字符串頭和尾;
  2. 再建立一個臨時指針r來存放字符串數組arr的首地址:
  3. p,q碰見空格就p++和q–;一直循環直至非空。blog


  如圖:
字符串


  

      具體實現Demo:(這裏使用自定義isspace()函數)get

  1.  1 #include<stdio.h>
     2 #include<string.h>
     3 int myIsspace(char c)
     4 {
     5     if(c =='\t'|| c =='\n'|| c ==' ')
     6         return1;
     7     else
     8         return0;
     9 }
    10 int main(void)
    11 {
    12     char arr[32]=" hello world ";
    13     printf("<%s>\n", 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 ='\0';
    24     printf("<%s>\n", arr);
    25     return0;
    26 }

     

  消除結果以下所示:原型

相關文章
相關標籤/搜索