c语言删除字符串的空格函数,C语言去除空白字符trim函数的高效实现
发布日期:2021-09-12 18:41:44 浏览次数:43 分类:技术文章

本文共 660 字,大约阅读时间需要 2 分钟。

看了终南写的一文,觉得还是有些需要改进之处。

空白字符指空格、水平制表、垂直制表、换页、回车和换行符,他的方法如下:

#include

#include

char *trim(char *str)

{

char *p = str;

char *p1;

if(p)

{

p1 = p + strlen(str) - 1;

while(*p && isspace(*p)) p++;

while(p1 > p && isspace(*p1)) *p1-- = '/0';

}

return p;

}

如这里面有2处“不科学”之处:

1,while(p1 > p && isspace(*p1)),如果右边空白比较多,那么每次都要比较p1和p的大小,不合理;

2,*p1 -- = '/0'每次while为真,那么*p1自减之后还要赋值一次,多此一举;

比较高效的方法如下:

char *trim(char *str)

{

char *p = str;

while (*p == ' ' || *p == '/t' || *p == '/r' || *p == '/n')

p ++;

str = p;

p = str + strlen(str) - 1;

while (*p == ' ' || *p == '/t' || *p == '/r' || *p == '/n')

-- p;

*(p + 1) = 0;

return str;

}

值得注意的是,此方法返回的是已经修改的字串,而且字串的长度小于等于原字串的长度。

转载地址:https://blog.csdn.net/weixin_39610594/article/details/117015960 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:设计成绩表C语言,C语言程序的设计学生成绩记录簿.doc
下一篇:c语言简易计算器大作业报告,简易计算器 (C语言)作业

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年03月27日 06时38分25秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

转:【答学员问】有什么经验教训,是你在面试很多次之后才知道的? 2019-04-27
消息队列:解耦、异步、削峰,现有MQ对比以及新手入门该如何选择MQ? 2019-04-27
【奇技淫巧】-- 三角形最小路径和 2019-04-27
【小技巧】argc和argv的用法 2019-04-27
学不下去了怎么办? 2019-04-27
二叉树的前中后序遍历(迭代法)(带动画) 2019-04-27
【小技巧】【XShell】【Xftp】Windows桌面与Linux虚拟机互传文件 2019-04-27
【redis入门】Centos下安装redis 2019-04-27
【redis入门】redis安装后相关知识串讲 2019-04-27
【redis】来吧,展示一下redis 发布-订阅模式 2019-04-27
讲通C/C++预编译/条件编译指令 #ifdef,#ifndef,#endif,#define,… 2019-04-27
【redis6.0.6】redis源码慢慢学,慢慢看 -- 第二天:空间配置(zmalloc) 2019-04-27
当下热点词再学:redis缓存预热、更新、降级,限流 2019-04-27
【redis6.0.6】redis源码慢慢学,慢慢看 -- 第五天:adlist 2019-04-27
别抖,OK? 操作系统抖动现象、网络抖动与延迟、函数抖动之防抖与节流,串讲 2019-04-27
第六天:网络处理(anet部分)-- redis源码慢慢学,慢慢看【redis6.0.6】 2019-04-27
通过域名获取主机IP -- struct addrinfo 2019-04-27
【C++】算法集锦(8):从两数和问题拓展到一百数和问题 2019-04-27
【C++】算法集锦(9):背包问题 2019-04-27
【C++】算法集锦(10)通俗讲kmp算法 2019-04-27