删除字符串中的多余空格

char *delete_space(char *a)
//删除字符串首尾空格,并把中间多余一个的空格去掉
{
    int i = 0, j = 0, l = 0, k = 0;
    static char c[128];
    memset(c, 0, sizeof(c));
//清零的目的是为了可重入时上次的结果不影响本次
    /*char buf[128] = {0};*/
    /*strcpy(buf, a);*/
    /*k = strlen(buf) - 1;*/
    k = strlen(a) - 1; //strlen可以得到有效元素的长度
 
    if(0 == i) //截取首尾非空格的字符部分
    {
        for(j = 0; a[j] == ' '; j++); //扫描字符串首
        for(;a[k] == ' '; k--); //扫描字符串尾
    }
 
    for(l = 0, i = j; i <= k; i++)
    {
        if(a[i] == ' ' && a[i + 1] == ' ');
        //如果当前是空格,并且下一个也是空格,则不把当前元素放入新的字符串
        else
            c[l++] = a[i]; //仅当前是空格或当前是有效元素,把数据放入新的字符串
    }
    return c; //c是去除空格后新的字符串的地址
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值