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. Hard Negative Mning

    对于hard negative mining的解释,引用一波知乎: 链接:https://www.zhihu.com/question/46292829/answer/235112564来源:知乎 先 ...

  2. setInterval的用法

    function show1(){    console.log("每隔1秒显示一次");}function show2(str){    console.log(str);}se ...

  3. R-TREE

    原文地址:http://blog.csdn.net/sunmenggmail/article/details/8122743 1984年,加州大学伯克利分校的Guttman发表了一篇题为“R-tree ...

  4. QML C++插件dll引用

    插件的创建非常简单,但是它可以复用,并且为不同的应用程序扩展类型.使用创建的插件是非常灵活的解决方案.关于插件一个很好的例子见QmlBook-In-Chinese 中最后一章介绍的例子. 本文主要备忘 ...

  5. SKlearn库学习曲线

    思想: # 1.现将所有样本用交叉验证方法或者(随机抽样方法) 得到 K对 训练集-验证集# 2.依次对K个训练集,拿出数量不断增加的子集如m个,并在这些K*m个子集上训练模型.# 3.依次在对应训练 ...

  6. Python-HTML CSS题目

    一.简答1.手写html模板,并解释模板每个标签的作用 <!doctype html> 文件类型html <html>页面根 <head>后勤内容 <meta ...

  7. 容器平台选型的十大模式:Docker、DC/OS、K8S 谁与当先?【转】

    网易企业服务2017-10-13 无论是在社区,还是在同客户交流的过程中,总会被问到到底什么时候该用 Docker?什么时候用虚拟机?如果使用容器,应该使用哪个容器平台? 显而易见,我不会直接给大家一 ...

  8. NodeJs>------->>第一章:Node.js介绍

    一:章节前言 二:Node.js概述 1:使用node.js能够解决什么问题 2:实现高性能服务器 3:非阻塞型I/O及事件环形机制 4:node.js适合开发的程序 三:node.js安装 一.No ...

  9. PHP 将数组的值赋值给一组变量

    经常需要将一个字符串分割成一组值,然后赋值给不同的变量. 逐行赋值非常繁琐,于是查了一下 PHP 中是否有类似 python 中 a, b = (a, b) 的操作. 果然有 $info = arra ...

  10. html----常见的标签

    HTML标签: <strike>为文字加上一条中线</strike> <em>: 文字变成斜体.</em> 2<sup>2</sup& ...