• C语言--isspace()函数实现


      c语言中有很多处理string类型的函数,今天简单的使用了一下isspace()函数,自我实现调用了一下。

    Isspace()函数

      包含在ctype.h头文件中
    函数原型:

    1. int isspace(int c);

    函数功能
      判断输入字符是否为空格/回车/制表符等
    函数参数:
      获取实参char类型的字符
    函数返回值:
      如果获取到的字符是空格/回车/制表符等,返回非0值(即真);否则返回0

    实例一:调用头文件直接使用isspace()函数

    1.  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. 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.  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 }

      消除结果如下所示:



  • 相关阅读:
    用AjaxMethod 方法实现动态加载地图
    C#中HashTable的使用(转)
    ArcGIS Server 中的动态文字标注
    ArcGIS Server .Net Web ADF之几何类型的相互转换(转)
    ArcGIS Server连接远程地图服务器
    sqlplus环境配置(login.sql)
    Oracle从软件安装到运行的全流程
    【转载】linux中误删除oracle数据文件的恢复操作
    “大淘宝战略”下集市定位,将决定马云和未来淘宝的命运
    男人如何对待抱怨自己的女人
  • 原文地址:https://www.cnblogs.com/Bob-tong/p/6610647.html
Copyright © 2020-2023  润新知