电子产品世界 » 论坛首页 » 企业专区 » STM32 » C 实现 删除字符串空白符的函数 strtrim

共2条 1/1 1 跳转至

C 实现 删除字符串空白符的函数 strtrim

高工
2018-12-20 09:07:04    评分



直接上代码

/*************************************************************************

> File Name: trim.c

> Author: 

> Mail: 

> Created Time: Mon 12 Nov 2018 10:16:04 AM CST

 ************************************************************************/


#include<stdio.h>


/*****************************************************************************

 函 数 名  : 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));

}





管理员
2018-12-20 12:09:18    评分
2楼

谢谢楼主分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]