C 实现 删除字符串空白符的函数 strtrim
发布日期:2021-06-30 18:54:58
浏览次数:3
分类:技术文章
本文共 2043 字,大约阅读时间需要 6 分钟。
说在前面的话
字符串操作在很多C语言比赛里面都有涉及,最近公众号里面的C语言比赛,都是两个关于字符串操作的题目,希望大家认真看题目。
直接上代码
/************************************************************************* > File Name: trim.c > Author: > Mail: > Created Time: Mon 12 Nov 2018 10:16:04 AM CST ************************************************************************/#include/***************************************************************************** 函 数 名 : strtrim 功能描述 : 删除行首、行尾空白符号 输入参数 : char *is 输出参数 : 无 返 回 值 : char * 调用函数 : 被调函数 : 修改历史 : 1.日 期 : 2018年11月12日 作 者 : strtrim 修改内容 : 新生成函数*****************************************************************************/char * strtrim(char *s) { char *p = s; char *q = s; //去掉行首的空格 while (*p==' ' || *p=='\t') ++p; //赋值 while ((p != NULL)&&(q != NULL)&&(*p != '\0')&&(*p != '\0')) { *q++ = *p++; }; //删除'\0'字符 注意是 -2 上面q++是先操作再自加 q -= 2; //去掉行末的空格 while (*q==' ' || *q=='\t') --q; //给字符串添加字符结束标志 *(q+1) ='\0'; //这里的return s要注意看好 //因为p q经过一系列操作后,已经不是原来的位置,越界了 ,s还在原来位置,所以return s才是正确的。 return s;}/***************************************************************************** 函 数 名 : strtrimc 功能描述 : 删除字符串空白符,包括行首和行尾 输入参数 : char * s 输出参数 : 无 返 回 值 : char * 调用函数 : 被调函数 : 修改历史 : 1.日 期 : 2018年11月12日 作 者 : strtrim 修改内容 : 新生成函数*****************************************************************************/char * strtrimc( char * s ){ char * p1 = s; char * p2 = s; while(*p1 != '\0') { while(*p1 == ' ' || *p1 == '\t') { p1 ++; } * p2 ++ = *p1 ++; } *p2 = '\0'; return (s);}void main(void){ char str[1000] = {" adf asdfasldf jjjjjjjjj iiii "}; char str1[1000] = {" adf asdfasldf jjjjjjjjj iiii "}; puts("Start main."); printf("%s\n",strtrimc(str)); printf("%s\n",strtrim(str1));}
注意问题
1 常量区
刚开始的时候,我写的是char * s = "adfasdfasdfsf adfasdf adfasdfad ";
然后出现段错误,这里定义的s,保存在的是常量区,所以不能做赋值等操作,大家对字符串操作的时候要特别注意。2指针的返回值问题
原来我返回的是p1 ,p1 p2 s原来是相等的,但是经过一系列运算后,他们的值已经不相等了,他们的值如上面显示那样,所以返回值一直要返回s。转载地址:https://linus.blog.csdn.net/article/details/83993501 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月21日 22时58分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
配置nginx只允许域名访问,禁止ip访问【图文教程】
2019-04-30
Java代理【图文教程】_第1章_静态代理
2019-04-30
Java代理【图文教程】_第2章_jdk动态代理
2019-04-30
AOP面向切面编程【图文教程】_第1章
2019-04-30
AOP面向切面编程【图文教程】_第2章
2019-04-30
二叉树之前序、中序、后序和层次遍历【图文教程】
2019-04-30
java类的构成
2019-04-30
创建安装linux:centOS
2019-04-30
Xshell连接CentOS及安装hadoop的准备
2019-04-30
在linux上配置jdk和hadoop
2019-04-30
HDFS配置及常见命令
2019-04-30
xshell连接linux速度很慢或者连接一段时间后会自动断
2019-04-30
Hadoop Windows插件配置
2019-04-30
存储 HDFS内部运行原理
2019-04-30
二丶存储+分析处理信息MapReduce内部原理
2019-04-30
static代码块设置全局变量和eclipse java配好HDFS类对HDFS的操作
2019-04-30
互联网行业为何缺少web前端工程师?
2019-04-30
零基础学UI设计,海报设计需思考这些点!
2019-04-30