| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3242 人关注过本帖
标题:[求助]如何将输入的字符串中有相同的字符去掉,但是不能用库函数
只看楼主 加入收藏
firearmer
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-9-10
收藏
 问题点数:0 回复次数:12 
[求助]如何将输入的字符串中有相同的字符去掉,但是不能用库函数

本人刚刚接触编程,遇见了个难题:

输入一个字符串,去掉出现了的重复字符,输出没有重复的字符.例如:"fghffgklhhqwq",输出"klw"

但是不能用库函数,哪位高人能帮小弟一下啊。

搜索更多相关主题的帖子: 库函数 字符 难题 输入 
2005-09-10 13:43
jackrain
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2005-9-4
收藏
得分:0 
字符串里只有26个字母吗?如果是的话就好办,建立个数组aa[26]={0}.。然后扫描输入串中的每一个字符(假设全是小写的),如果aa[字符-'a'] =  1说明它出现过,就继续扫描下一个;否则把aa[字符-'a']置一

程序和身体一样,健壮,再健壮! 我爱C++
2005-09-10 15:15
想你的天空
Rank: 2
等 级:新手上路
威 望:5
帖 子:610
专家分:0
注 册:2004-12-30
收藏
得分:0 
简单问题啊

2005-09-10 15:33
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
在怎么个程度上不用库函数啊? 你想想, getline,  get,  cin,  cout,  这些都是库函数啊,你不用库函数,代码就没法写了,我看没有程序是不用库函数的。

你明确说说那些函数不能用,这样才能帮你写代码,还有C++ 的那个 string 类可以用吗?Vector可以用吗?

To jackrain, 要求只是让你输入字符串, 可没有说限制在26个字母范围内啊! 也就是说, 1 2 3 4 5 6 7 8 9 0还有标点符号还有其他特殊字符都应该考虑进去啊.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-09-10 16:35
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
我给你编的程序(你看看吧)
我用c语言编的,编的不好请别笑话,不知道是否符合你的要求?
void main()
  {char str1[Q],str2[Q],*p1,*p2;
   int i,k,m=0;
   printf("Please Enter One String:");
   scanf("%s",str1);
   p1=str1;p2=str2;
   for(i=0;str1[i]!='\0';i++)
    {for(k=0;str1[k]!='\0';k++)
       if(str1[i]!=str1[k]) m++;
     if(m==strlen(str1)-1)
       {*p2=*p1;p2++;p1++;m=0;}
     else {p1++;m=0;}
     }
   *p2='\0';
   printf("The result is:");
   puts(str2);
   getch();
  }
谢谢!
我的qq号:303770957
2005年9月10 日

♂ 死后定当长眠,生前何须久睡。♀
2005-09-10 23:45
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
对不起刚发的程序没发完.
#include "stdio.h"
#include "string.h"
#define  Q 80
void main()
  {char str1[Q],str2[Q],*p1,*p2;
   int i,k,m=0;
   printf("Please Enter One String:");
   scanf("%s",str1);
   p1=str1;p2=str2;
   for(i=0;str1[i]!='\0';i++)
    {for(k=0;str1[k]!='\0';k++)
       if(str1[i]!=str1[k]) m++;
     if(m==strlen(str1)-1)
       {*p2=*p1;p2++;p1++;m=0;}
     else {p1++;m=0;}
     }
   *p2='\0';
   printf("The result is:");
   puts(str2);
   getch();
  }
输入:fghffgklhhqwq
输出:klw
你试试吧!
如过有别的好方法请发表到我的油箱:wjr-2008@
thank you !你给我这个好机会啊!

♂ 死后定当长眠,生前何须久睡。♀
2005-09-11 00:00
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
那我输入的长度超过80, 那该怎么办呢?

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-09-11 00:24
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
如果你输入的字符串大于80 请将 "#define  Q 80"中的"80"改成大于80 的整数即可.

♂ 死后定当长眠,生前何须久睡。♀
2005-09-14 23:06
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
303770957, 那我当然知道的啦,但问题是程序运行了,怎么可以改代码呢?你明白我的意思吗? 也就是说,你的程序是对用户的输入有限制条件的,那就是那个输入字符串不能超过那个事先设定的最长长度。但我现在想让用户随意输入,也就是说,没有那个事先设定,那该怎么来做呢?

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-09-15 07:10
玩偶
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-3-9
收藏
得分:0 
做个结构体数组~数据包括字符szWord和数量nCount,输出的时候只输出nCount=1的
可能麻烦了,不过不失为一个好办法还可以解决字符串长度的动态大小

[此贴子已经被作者于2005-9-15 14:21:28编辑过]



程序认识我,我不认识程序!
2005-09-15 11:45
快速回复:[求助]如何将输入的字符串中有相同的字符去掉,但是不能用库函数
数据加载中...
 
   



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

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