zoukankan      html  css  js  c++  java
  • 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 }

      消除结果如下所示:



  • 相关阅读:
    OJ:自己实现一个简单的 priority_queue
    OJ:访问 const 成员函数问题
    OJ:重载 << 运算符
    Qt 编程中 namespace Ui { class Widget; } 解析
    QT 实现图片旋转的两种方法
    QTimer 的使用
    QT 完美实现圆形按钮
    QT 设置有效绘图区域
    基于 LWIP 建立 TCP Server 与主机通信实验
    大整数相乘 分治法 和 循环暴力法
  • 原文地址:https://www.cnblogs.com/Bob-tong/p/6610647.html
Copyright © 2011-2022 走看看