首页 > 编程语言 > 详细

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

时间:2017-03-24 11:58:10      阅读:1152      评论:0      收藏:0      [点我收藏+]

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

Isspace()函数

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

  1. 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>\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. 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"

??消除实现思想:
??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 ==‘\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. }

??消除结果如下所示:

技术分享

 



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

原文:http://www.cnblogs.com/Bob-tong/p/6610647.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!