其他分享
首页 > 其他分享> > C语言实现删除字符串首尾的空格,中间的连续空格只留一个,原来字符串顺序不变

C语言实现删除字符串首尾的空格,中间的连续空格只留一个,原来字符串顺序不变

作者:互联网

#include<stdio.h>
#include<string.h>

char * deblank(char * str)
{
    char * left = str;//前面的指针,负责赋值
    char * right = str;//后面寻找非空格字符的指针

    while (*right)//截至字符串完
    {
        if (*right != ' ')
        {
            if (left<right)
            {
                *left = *right;//赋值
            }
            left++;
        }
        if (*right == ' '&&*(right + 1) != ' ')//寻找到下一个单词时,对left的操作
        {
            *left = ' ';
            left++;
        }
        right++;
    }
    *left = '\0';
    return *str != ' ' ?str:(str + 1);//防止首单词之前有空格现象
}
int main()
{
    char str[] = "    as   adadq       k    ";
    char *a = deblank(str);
    int i;
    for (i = 0; i < strlen(a); i++)
    {
        printf("%c",*(a+i));//输出流
    }
    return 0;
}

标签:char,right,只留,空格,str,字符串,include
来源: https://blog.51cto.com/14233078/2433103