| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1532 人关注过本帖
标题:求助大侠
只看楼主 加入收藏
lymanni
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-3-15
收藏
 问题点数:0 回复次数:14 
求助大侠
怎么把一个字符串里相同的字符给删除了?
例如:aabbccdededegft
变成:abcdegft
搜索更多相关主题的帖子: 大侠 字符 abcdegft 删除 
2008-03-18 20:45
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
hash记录直接输出
2008-03-18 20:54
lymanni
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-3-15
收藏
得分:0 
能不能详细说明一下
hash我没有学过
2008-03-18 20:58
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我这有可以把所有相邻相同的字符删除
#include"stdio.h"
#include"string.h"
int main()
{
    char a[1000],*p;
    p=a;
    gets(a);
    do
    {
        if(*(p+1)==*p)
        {
            strcpy(p,p+1);            
        }
        else
          p++;
    }while(*p!='\0');
    puts(a);
}

学习需要安静。。海盗要重新来过。。
2008-03-18 21:01
lymanni
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-3-15
收藏
得分:0 

明白了
谢谢
2008-03-18 21:08
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
4楼代码低效
2008-03-18 21:35
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
燕子谢谢你哦...呵呵..上面那个不完整..而且我没考虑效率..只是考虑一下能不能有结果..下面这个是做好的
#include"stdio.h"
#include"string.h"
int main()
{
    char a[1000],*p;
    char b[1000]={0};
    gets(a);
    p=a;
    do{
       if(b[(int)*p]++>=1)
           strcpy(p,p+1);
       else
           p++;
      
    }while(*p!='\0');
    puts(a);
}

[[it] 本帖最后由 sunkaidong 于 2008-3-18 22:54 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-03-18 21:52
lymanni
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-3-15
收藏
得分:0 
谢谢

[[it] 本帖最后由 lymanni 于 2008-3-18 21:54 编辑 [/it]]
2008-03-18 21:52
tornodo
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-3-8
收藏
得分:0 
没用到i,j。有点不懂。
2008-03-18 22:33
wolfs
Rank: 1
来 自:成都
等 级:新手上路
帖 子:32
专家分:0
注 册:2008-3-15
收藏
得分:0 
我的程序,不过有个缺点,就是如果 a[0],a[1]都是同一个字符,就排不出a[1],
#include <iostream>
using namespace std;
int main ()
{
 const int SZ=25;
 char a[SZ]="aaagggjkseiieilsknnl";
 int i,j,sz;
 sz=SZ;
 for (i=0;i<=sz;++i)
     for(j=i+1;j<=sz;++j)
     {
       if (a[i]==a[j])
          --sz;
          for (;j<=sz;++j)
             a[j]=a[j+1];
     }
  for(i=0;i<=sz;++i)
    cout<<a[i]<<" "<<endl;
}
另外  请教一哈 7 楼
 if(b[(int)*p]++>=1)是什么意思,++>是什么意思;

[[it] 本帖最后由 wolfs 于 2008-3-18 22:56 编辑 [/it]]

哎...我这扶不上墙的泥啊,只有自己爬上去了!
2008-03-18 22:51
快速回复:求助大侠
数据加载中...
 
   



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

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