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 ...
随机推荐
- vlc-android 的编译过程
参考官方文档:https://wiki.videolan.org/AndroidCompile#Get_VLC_Source 值得注意的的地方: 1.切记安装以下工具 sudo apt-get ins ...
- SpringMvc整合Mybatis并使用声明式事务
(1).引入相关依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid< ...
- css 背景图片自适应元素大小
一.一种比较土的方法,<img>置于底层. 方法如下: CSS代码: HTML: <img src="背景图片路径" /> <span>字在背景 ...
- linux内核中链表代码分析---list.h头文件分析(二)【转】
转自:http://blog.chinaunix.net/uid-30254565-id-5637598.html linux内核中链表代码分析---list.h头文件分析(二) 16年2月28日16 ...
- WIN10 ISO 官方
WIN10 ISO 官方: https://www.microsoft.com/zh-cn/software-download/windows10ISO/
- mysql数据库报错:InnoDB: Operating system error number 13 in a file operation
环境:centos6.5 x86_64 启动mysql发现日志报错(日志路径可以查看/etc/my.cnf的配置) 160722 10:34:08 [Note] Found 42570716 of 4 ...
- CentOs 6.6里kdump启动失败的原因
在VMware中新安装了CentOs 6.6,重启系统发现kdump服务启动失败 先来说一下,什么是kdump kdump 是一种先进的基于 kexec 的内核崩溃转储机制.当系统崩溃时,kdump ...
- Android软件更新
Android软件更新 //得到当前版本编码和版本名称. public static int getVerCode(Context context) { ; try { verCode =).vers ...
- viewpager显示图片的Adapter
package com.ming.chiye.yishanghorse.Adapter; import android.content.Context; import android.graphics ...
- 深度学习Bible学习笔记:第七章 深度学习中的正则化
一.正则化介绍 问题:为什么要正则化? NFL(没有免费的午餐)定理: 没有一种ML算法总是比别的好 好算法和坏算法的期望值相同,甚至最优算法跟随机猜测一样 前提:所有问题等概率出现且同等重要 实际并 ...