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 ...
随机推荐
- CentOS 6.8 部署django项目二
CentOS 6.8 部署django项目一 1.项目部署后发现部分页面的样式丢失,是因为在nginx中配置的static路径中未包含. 解决:在settinfs.py中添加: STATIC_ROOT ...
- WinEdt 和 Sumatra 双向关联设置
(1)配置PDF Viewer,在菜单栏选Options -> Execution Modes ->PDF Viewer ->点击右侧的"Browse"按钮,在弹 ...
- 【CTF WEB】ISCC 2016 web 2题记录
偶然看到的比赛,我等渣渣跟风做两题,剩下的题目工作太忙没有时间继续做. 第1题 sql注入: 题目知识 考察sql注入知识,题目地址:http://101.200.145.44/web1//ind ...
- Faster rcnn代码理解(2)
接着上篇的博客,咱们继续看一下Faster RCNN的代码- 上次大致讲完了Faster rcnn在训练时是如何获取imdb和roidb文件的,主要都在train_rpn()的get_roidb()函 ...
- Libevent源码分析系列
1.使用libevent库 源码那么多,该怎么分析从哪分析呢?一个好的方法就是先用起来,会用了,然后去看底层相应的源码,这样比较有条理,自上向下掌握.下面用libevent库写个程序,每隔1秒 ...
- notepad++64位添加plugin manager
- 64位的notepad++,下载下来似乎没有plugin manager,如果真没有可以下载plugin manager. - plugin manager的下载地址:https://github ...
- [转]解决win7 64位操作系统下安装PL/SQL后连接报错问题: make sure you have the 32 bits oracle client installed
1. 在Oracle官网(http://www.oracle.com/technetwork/topics/winsoft-085727.html)下载文件: instantclient-basic- ...
- dns轮询
负载均衡最开始一步,利用它实现负载均衡集群的定位
- 007_linux显示一个文件的某几行(中间几行)
<1>从第3000行开始,显示1000行.即显示3000~3999行 cat -n filename | tail -n +3000 | head -n 1000 cat -n anaco ...
- activit流程引擎启动流程报错
代码如下: 目录结构 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); @Test public void ...