| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 771 人关注过本帖
标题:一道题 帮忙看看有没有更好的方法
只看楼主 加入收藏
xxwpk007
Rank: 4
等 级:业余侠客
帖 子:166
专家分:289
注 册:2007-7-29
结帖率:100%
收藏
 问题点数:0 回复次数:6 
一道题 帮忙看看有没有更好的方法
编写一个函数,从一个字符串中除去多余的空格.函数原型如下:
void deblank(char string[]);
当函数发现字符串中如果有一个地方由一个或多个连续的空格组成,就把它们改成单个空格字符.


程序代码:
void deblank(char string[])
{
    int i,n;
    while(*string != '\0')
    {
        if(*string != ' ')
            string++;
        else
        {
            //计算空格数
            for(i = 1; *(string+i) == ' ';i++)
                continue;
            i--;//需要删除的空格数

            if(i == 0)
            {
                string++;
                continue;
            }

            //删除空格
            for(n = 1;*(string+i+n) != '\0';n++)
                *(string+n) = *(string+i+n);
            *(string+n) = '\0';
        }
    }
}


想了很久也没有想到一个更好的方法,大家帮帮忙吧.
搜索更多相关主题的帖子: continue 字符串 
2008-12-06 21:39
守鹤
Rank: 4
来 自:山東臨沂
等 级:贵宾
威 望:12
帖 子:337
专家分:0
注 册:2008-6-20
收藏
得分:0 
void  Dblank(char  *str)
{
char  *p=str,*q;
while(*p!='\0')
{
   if(*p==' ')
    {    p++;
    q=p;
    if(*q=' ')
    {
               do{
        q++;
        }while(*q==' ');
    strcpy(p,q);
    }        
     }
}
}

多少个日日夜夜想起你,只希望有缘再次相见
2008-12-06 22:22
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
不知道你是不是这个意思?
程序代码:
void deblank(char string[])
{
    char *str;
    while(*string)
    {
        while(((*string!=' ')&&*string)||(*string==' '&&*(string+1)!=' '))
            string++;
        for(str=string;*str;str++)
            *str=*(str+1);
    }
}


[[it] 本帖最后由 广陵绝唱 于 2008-12-7 08:26 编辑 [/it]]
2008-12-06 22:56
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 第2楼 守鹤 的帖子
你再看看,我的编译器用你的程序,无法输出。
2008-12-06 23:02
xxwpk007
Rank: 4
等 级:业余侠客
帖 子:166
专家分:289
注 册:2007-7-29
收藏
得分:0 
回复 第3楼 广陵绝唱 的帖子
谢了,慢慢理解中.....
2008-12-06 23:09
jdh99
Rank: 2
来 自:南师大
等 级:论坛游民
威 望:1
帖 子:59
专家分:15
注 册:2008-11-7
收藏
得分:0 
守鹤的只有2个小问题:
void  Dblank(char  *str)
{
    char  *p = str,*q;
    while(*p!='\0')
    {
        if(*p==' ')
        {  
            p++;
            q = p;
            if(*q == ' ')//--格式
            {
                do
                {
                    q++;
                }while(*q == ' ');
                strcpy(p,q);
            }        
        }
        p++;//--增加
    }
}

作鲲鹏,遨游于天地沧海
2008-12-07 00:40
yulangdeqian
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-12-6
收藏
得分:0 
好难啊
2008-12-07 11:37
快速回复:一道题 帮忙看看有没有更好的方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016409 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved