C语言 中怎么删除字符串空白符

发布时间:2021-07-14 16:21:58 作者:Leah
来源:亿速云 阅读:277

C语言 中怎么删除字符串空白符,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

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

     > 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.       : 20181112

           : strtrim

    修改内容   : 新生成函数

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

char*strtrim(char*s) {

    char*=s;

    char*=s;

    //去掉行首的空格

    while(*p==' '||*p=='\t') 

        ++p;

    //赋值

    while((p !=NULL)&&(q !=NULL)&&(*!='\0')&&(*!='\0'))

    {

        *q++=*p++;

    };

     //删除'\0'字符注意是-2 上面q++是先操作再自加

    q -=2;

    //去掉行末的空格

    while(*q==' '||*q=='\t') 

        --q;

    //给字符串添加字符结束标志

    *(q+1) ='\0';

    //这里的return s要注意看好

    //因为p q经过一系列操作后,已经不是原来的位置,越界了s还在原来位置,所以return s才是正确的。

    returns;

}

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

   : strtrimc

 功能描述  : 删除字符串空白符,包括行首和行尾

 输入参数  : char * s

 输出参数  : 

   : char *

 调用函数  : 

 被调函数  : 

 

 修改历史      :

  1.       : 20181112

           : 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);

}

voidmain(void)

{

     charstr[1000]={" adf asdfasldf jjjjjjjjj    iiii "};

     charstr1[1000]={" adf asdfasldf jjjjjjjjj    iiii "};

     puts("Start main.");

    printf("%s\n",strtrimc(str));

     printf("%s\n",strtrim(str1));

}

运行结果

<img src="https://pic1.zhimg.com/v2-8a63cf946682cfbd00b713f82b4c0ab4_b.jpg" data-caption="" data-size="normal" data-rawwidth="517" data-rawheight="86" class="origin_image zh-lightbox-thumb" width="517" data-original="https://pic1.zhimg.com/v2-8a63cf946682cfbd00b713f82b4c0ab4_r.jpg">

C语言 中怎么删除字符串空白符

注意问题

常量区

刚开始的时候,我写的是char * s = "adfasdfasdfsf adfasdf adfasdfad ";

然后出现段错误,这里定义的s,保存在的是常量区,所以不能做赋值等操作,大家对字符串操作的时候要特别注意。

指针的返回值问题

<img src="https://pic2.zhimg.com/v2-a0a20ac82107e53ed414d00f8bf849d1_b.jpg" data-caption="" data-size="normal" data-rawwidth="765" data-rawheight="451" class="origin_image zh-lightbox-thumb" width="765" data-original="https://pic2.zhimg.com/v2-a0a20ac82107e53ed414d00f8bf849d1_r.jpg">

C语言 中怎么删除字符串空白符

原来我返回的是p1 ,p1 p2 s原来是相等的,但是经过一系列运算后,他们的值已经不相等了,他们的值如上面显示那样,所以返回值一直要返回s。

关于C语言 中怎么删除字符串空白符问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. c语言删除字符串中的空格
  2. C语言之字符单向链表

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:如何用JavaUtils模块连接Jython和Java

下一篇:Java中如何使用日期处理函数

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》