删除字符串中多余空格--c语言实现

题目描述

格式化字符串,删除单词与单词,字母与字母,单词与字母之间的多余空格
例如:
"fdfeasdsaf vsdrwf c dfefa adqdw"
格式化后为:
"fdfeasdsaf vsdrwf c dfefa adqdw"

代码部分

#include <stdio.h>
void deblank(char s[]);

int main(void)
{
    char s[100];    //可以改成动态分配方法,更具普遍性
    printf("please input one strings:");
    fgets(s,100,stdin);
    deblank(s);
    return 0;
}

void deblank(char s[])
{
    printf("after deblank:");
    int point=0,next=0;
    while(s[point]!='\0')
    {
        if(s[point]!=' ')
        {
            printf("%c",s[point]);
            point++;
        }
        else
        {
            next=point+1;
            while(s[next]==' ')
                next++;
            printf(" ");
            point=next;
        }
    }
}

讲解部分

  1. 上面这种方法只能输出,无法获取转换之后的值,想要实现此功能可以新建一个数组挨个赋值,很简单实现;
  2. 遍历整个数组到'\0'处,不用全部遍历,节省时间;
  3. 用next指向输出位置,用point遍历值以及某些操作
posted @ 2020-04-20 22:18  comixH  阅读(2962)  评论(0编辑  收藏  举报