码迷,mamicode.com
首页 > 其他好文 > 详细

去除字符串中单词的多余空格

时间:2014-08-24 11:27:12      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   ar   2014   问题   div   代码   

题目很水,我想代码应该就是最好的注释,实现如下:

/*************************************************************************
    > File Name: trim_space.c
    > Author: KrisChou
    > Mail:zhoujx0219@163.com 
    > Created Time: Sun 24 Aug 2014 10:03:33 AM CST
 ************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 128

static int my_isspace(char c)
{
    if(c ==   || c == \n || c == \t || c == \v)
        return 1;
    else
        return 0;
}

static void trim_space(char *line)
{
    int pre, work_index;
    pre = -1;
    work_index = 0;
    while(line[work_index] != \0)
    {
        if(!my_isspace(line[work_index]))
        {
            line[++pre] = line[work_index++];
        }else if(pre != -1 && !my_isspace(line[pre]))
        {
            line[++pre] = line[work_index++];
        }else
        {
            work_index++;
        }
    }
    line[++pre] = \0;
}

int main(int argc, char *argv[])
{
    char line[N];
    memset(line,0,N);
    while(fflush(stdin),gets(line)!= NULL)
    {
        trim_space(line);
        puts(line);
    }
    return 0;
}

/* 关于输入输出的问题此处再强调一次,gets不会存储‘\n’,并将最后一个‘\n’换成‘\0’存储。
 * puts会将‘\0’变成‘\n’输出。
 * gets是一个不安全函数,会输出直至遇到‘\0’为止。
 * fgets会存储‘\n’,fputs输出时不会将‘\0’变成‘\n’                                    */

去除字符串中单词的多余空格

标签:style   blog   color   io   ar   2014   问题   div   代码   

原文地址:http://www.cnblogs.com/jianxinzhou/p/3932547.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!