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

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

描述

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

输入

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

输出

过滤之后的句子。

样例输入

复制代码
Hello      world.This is    c language.

样例输出

复制代码
Hello world.This is c language.

答案

方法一

c 复制代码
#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_);
}

方法二

c 复制代码
#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_);
}

方法二

c 复制代码
#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);
}
相关推荐
Want595几秒前
C/C++圣诞树①
c语言·开发语言·c++
bkspiderx1 小时前
C++经典的数据结构与算法之经典算法思想:贪心算法(Greedy)
数据结构·c++·算法·贪心算法
l1t2 小时前
轻量级XML读写库Mini-XML的编译和使用
xml·c语言·解析器
中华小当家呐2 小时前
算法之常见八大排序
数据结构·算法·排序算法
沐怡旸3 小时前
【算法--链表】114.二叉树展开为链表--通俗讲解
算法·面试
一只懒洋洋3 小时前
K-meas 聚类、KNN算法、决策树、随机森林
算法·决策树·聚类
小莞尔3 小时前
【51单片机】【protues仿真】基于51单片机停车场的车位管理系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
xianyinsuifeng4 小时前
Oracle 10g → Oracle 19c 升级后问题解决方案(Pro*C 项目)
c语言·数据库·oracle
方案开发PCBA抄板芯片解密4 小时前
什么是算法:高效解决问题的逻辑框架
算法
songx_994 小时前
leetcode9(跳跃游戏)
数据结构·算法·游戏