C语言--isspace()函数实现
c语言中有很多处理string类型的函数,今天简单的使用了一下isspace()函数,自我实现调用了一下。
Isspace()函数
包含在ctype.h头文件中
函数原型:
int isspace(int c);
函数功能
判断输入字符是否为空格/回车/制表符等
函数参数:
获取实参char类型的字符
函数返回值:
如果获取到的字符是空格/回车/制表符等,返回非0值(即真);否则返回0
实例一:调用头文件直接使用isspace()函数
#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()函数
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()函数)
#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()函数实现的更多相关文章
- [置顶]
C语言itoa()函数和atoi()函数详解(整数转字符C实现)
头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * str); [函数说明]ato ...
- 【转载】C语言itoa()函数和atoi()函数详解(整数转字符C实现)
本文转自: C语言itoa()函数和atoi()函数详解(整数转字符C实现) 介绍 C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. int/float to ...
- C语言pow函数编写
C语言pow函数编写 #include<stdio.h> double chaoba(double f,double q); //声明自定义函数 void main(void) { dou ...
- C语言-自定义函数
C语言自定义函数 --1-- 自定义函数定义 1.1 无参无返回值函数 1.2 无参有返回值函数 1.3 有参无返回值函数 1.4 有参有返回值函数 --2-- 函数的参数 2.1 形式参数介绍和使用 ...
- C语言atof()函数:将字符串转换为double(双精度浮点数)
头文件:#include <stdlib.h> 函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为:double atof (const char* str); ...
- C语言printf()函数:格式化输出函数
C语言printf()函数:格式化输出函数 头文件:#include <stdio.h> printf()函数是最常用的格式化输出函数,其原型为: int printf( char ...
- C语言的函数
"函数"在英文的翻译是"function",无论在自然科学还是计算机科学都是这个词,而"function"的本意是"功能" ...
- c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)
C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...
- Go语言示例-函数返回多个值
Go语言中函数可以返回多个值,这和其它编程语言有很大的不同.对于有其它语言编程经验的人来说,最大的障碍不是学习这个特性,而是很难想到去使用这个特性. 简单如交换两个数值的例子: package mai ...
随机推荐
- Hard Negative Mning
对于hard negative mining的解释,引用一波知乎: 链接:https://www.zhihu.com/question/46292829/answer/235112564来源:知乎 先 ...
- setInterval的用法
function show1(){ console.log("每隔1秒显示一次");}function show2(str){ console.log(str);}se ...
- R-TREE
原文地址:http://blog.csdn.net/sunmenggmail/article/details/8122743 1984年,加州大学伯克利分校的Guttman发表了一篇题为“R-tree ...
- QML C++插件dll引用
插件的创建非常简单,但是它可以复用,并且为不同的应用程序扩展类型.使用创建的插件是非常灵活的解决方案.关于插件一个很好的例子见QmlBook-In-Chinese 中最后一章介绍的例子. 本文主要备忘 ...
- SKlearn库学习曲线
思想: # 1.现将所有样本用交叉验证方法或者(随机抽样方法) 得到 K对 训练集-验证集# 2.依次对K个训练集,拿出数量不断增加的子集如m个,并在这些K*m个子集上训练模型.# 3.依次在对应训练 ...
- Python-HTML CSS题目
一.简答1.手写html模板,并解释模板每个标签的作用 <!doctype html> 文件类型html <html>页面根 <head>后勤内容 <meta ...
- 容器平台选型的十大模式:Docker、DC/OS、K8S 谁与当先?【转】
网易企业服务2017-10-13 无论是在社区,还是在同客户交流的过程中,总会被问到到底什么时候该用 Docker?什么时候用虚拟机?如果使用容器,应该使用哪个容器平台? 显而易见,我不会直接给大家一 ...
- NodeJs>------->>第一章:Node.js介绍
一:章节前言 二:Node.js概述 1:使用node.js能够解决什么问题 2:实现高性能服务器 3:非阻塞型I/O及事件环形机制 4:node.js适合开发的程序 三:node.js安装 一.No ...
- PHP 将数组的值赋值给一组变量
经常需要将一个字符串分割成一组值,然后赋值给不同的变量. 逐行赋值非常繁琐,于是查了一下 PHP 中是否有类似 python 中 a, b = (a, b) 的操作. 果然有 $info = arra ...
- html----常见的标签
HTML标签: <strike>为文字加上一条中线</strike> <em>: 文字变成斜体.</em> 2<sup>2</sup& ...