当前位置:   article > 正文

openJudge | 过滤多余的空格 C语言

openJudge | 过滤多余的空格 C语言

总时间限制: 1000ms 内存限制: 65536kB

描述

一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。

输入

一行,一个字符串(长度不超过200),句子的头和尾都没有空格。

输出

过滤之后的句子。

样例输入

Hello      world.This is    c language.
  • 1

样例输出

Hello world.This is c language.
  • 1

答案

方法一

#include <stdio.h>
int main() {
    int switch_ = 0;
    static char str[201], str_[201], *p = str, *q = str_;
    gets(str);
    for(p = str; *p != 0; p++) {
        if(*p == ' ' && switch_ == 0) {
            switch_ = 1;
            *(q++) = *p;
        } else if(*p != ' ') {
            switch_ = 0;
            *(q++) = *p;
        }
    }
    puts(str_);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

方法二

#include <stdio.h>
int main() {
    int switch_ = 0;
    static char str[201], *p = str, *q = str;
    gets(str);
    for(p = str; *p != 0; p++) {
        if(*p == ' ' && switch_ == 0) {
            switch_ = 1;
            *(q++) = *p;
        } else if(*p != ' ') {
            switch_ = 0;
            *(q++) = *p;
        }
    }
    puts(str_);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

方法二

#include <stdio.h>
int main() {
    int switch_ = 0;
    static char str[201], *p = str, *q = str;
    gets(str);
    for(int i = 0; i < 201; i++, p++) {
        if(*p == ' ' && switch_ == 0) {
            switch_ = 1;
            *(q++) = *p;
        } else if(*p != ' ') {
            switch_ = 0;
            *(q++) = *p;
        }
    }
    puts(str);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/127524
推荐阅读
相关标签
  

闽ICP备14008679号