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

Isspace()函数

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

  1. int isspace(int c);

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

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

  1.  #include<stdio.h>
    #include<ctype.h>
    int main(void)
    {
    char arr[]=" hello world ";
    printf("<%s>\n", arr);
    char*r = arr;
    char*p = r;
    char*q = arr + strlen(arr)-;
    while(isspace(*p))
    p++;
    while(isspace(*q))
    q--;
    while(p <= q)
    *r++=*p++;
    *r ='\0';
    printf("<%s>\n", arr);
    return0;
    }

实例二:根据函数原型,自己实现isspace()函数

  1.  int myIsspace(char c)
    {
    if(c =='\t'|| c =='\n'|| c ==' ')
    return1;
    else
    return0;
    }

  在直接调用isspace()函数时,要谨慎使用,在不同的操作平台上,可能会有崩溃行为,建议自己实现一个isspace()函数。


错误如下:

  拓展:

  这里我调用isspace()函数主要实现消除字符串两边的空格或者其他符号,例如:"  hello heima  "消除空格之后的格式为:"hello heima"

  消除实现思想:
  1. 定义两个指针p,q分别指向字符串头和尾;
  2. 再创建一个临时指针r来存放字符串数组arr的首地址:
  3. p,q遇见空格就p++和q–;一直循环直至非空。


  如图:


  

      具体实现Demo:(这里使用自定义isspace()函数)

  1.  #include<stdio.h>
    #include<string.h>
    int myIsspace(char c)
    {
    if(c =='\t'|| c =='\n'|| c ==' ')
    return1;
    else
    return0;
    }
    int main(void)
    {
    char arr[]=" hello world ";
    printf("<%s>\n", arr);
    char*r = arr;
    char*p = r;
    char*q = arr + strlen(arr)-;
    while(myIsspace(*p))
    p++;
    while(myIsspace(*q))
    q--;
    while(p <= q)
    *r++=*p++;
    *r ='\0';
    printf("<%s>\n", arr);
    return0;
    }

  消除结果如下所示:

C语言--isspace()函数实现的更多相关文章

  1. [置顶] C语言itoa()函数和atoi()函数详解(整数转字符C实现)

    头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * str); [函数说明]ato ...

  2. 【转载】C语言itoa()函数和atoi()函数详解(整数转字符C实现)

    本文转自: C语言itoa()函数和atoi()函数详解(整数转字符C实现) 介绍 C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. int/float to ...

  3. C语言pow函数编写

    C语言pow函数编写 #include<stdio.h> double chaoba(double f,double q); //声明自定义函数 void main(void) { dou ...

  4. C语言-自定义函数

    C语言自定义函数 --1-- 自定义函数定义 1.1 无参无返回值函数 1.2 无参有返回值函数 1.3 有参无返回值函数 1.4 有参有返回值函数 --2-- 函数的参数 2.1 形式参数介绍和使用 ...

  5. C语言atof()函数:将字符串转换为double(双精度浮点数)

    头文件:#include <stdlib.h> 函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为:double atof (const char* str); ...

  6. C语言printf()函数:格式化输出函数

    C语言printf()函数:格式化输出函数 头文件:#include <stdio.h> printf()函数是最常用的格式化输出函数,其原型为:     int printf( char ...

  7. C语言的函数

    "函数"在英文的翻译是"function",无论在自然科学还是计算机科学都是这个词,而"function"的本意是"功能" ...

  8. c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)

    C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...

  9. Go语言示例-函数返回多个值

    Go语言中函数可以返回多个值,这和其它编程语言有很大的不同.对于有其它语言编程经验的人来说,最大的障碍不是学习这个特性,而是很难想到去使用这个特性. 简单如交换两个数值的例子: package mai ...

随机推荐

  1. Jetson tx1 安装ROS

    注意,是 Jetson TX1 系统版本: R24.2 参考链接: https://www.youtube.com/watch?v=-So2P0kRYsk

  2. 【API】API函数创建用户,添加到管理组

    1 学习目标 使用API添加用户可以绕过某些杀毒软件的限制. 2 编程思路 2.1 代码原理 使用NetUserAdd这个API添加普通权限的用户,NetLocalGroupAddMembers这个A ...

  3. MR运动静止用户区分

    1.客户端打开菜单[MR]-[MR室内室外判定设置] 设置主小区是室外站且主小区信号比较强时RSRP门限 2.设置"上报数据用户临小区切换次数门限设置"值为15 mysql中t_m ...

  4. b站评论爬取

    var userData = {}; var startPage = 0; var endPage = 0; var startTime = ""; var endTime = & ...

  5. C#使用RabbitMQ

    1. 说明 在企业应用系统领域,会面对不同系统之间的通信.集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要.其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方, ...

  6. MyEclipse2017 CI-7的破解

    下载了一个最新版的MyEclipse,网上下载了破解工具,按照步骤完成后破解失败.很纳闷,于是网上查看,说是破解器的版本须与MyEclipse的版本对应,不对应的话,是没有效果的.如我的是CI-7版本 ...

  7. 高级 Java 必须突破的 10 个知识点!

    1.Java基础技术体系.JVM内存分配.垃圾回收.类装载机制.性能优化.反射机制.多线程.网络编程.常用数据结构和相关算法. 2.对面向对象的软件开发思想有清晰的认识.熟悉掌握常用的设计模式. 3. ...

  8. 网站遭遇CC及DDOS攻击紧急处理方案

    检测访问是否是CC攻击的命令: 80口为网站的访问端口,可以根据实际情况进行修改 # netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: ' ...

  9. windows 7安装apache

    最近想在PHPEclipse 上开发PHP项目,但遇到的一个问题是:无法在Web 上浏览PHP页面,更谈不上调试了.这一点让人很是纠结,在浏览网上大量的相关内容后,该问题已经解决. 具体的操作过程详见 ...

  10. iOS 8 WKWebView 知识点

    首先看看这篇文章,写得很好:http://nshipster.cn/wkwebkit/ 再推荐去看看 iOS_8_by_Tutorials 这本书里的 WKWebView相关章节! 我这里说下自己的简 ...