例:
输入字符串:qweqweasdlmn
输出字符串:qweasdlmn
#include <iostream> #include<cstring> using namespace std; string remove_same(string str) { size_t subpos,sublen; string temp_str; temp_str.append(str,0,1); for(subpos=1;subpos<str.length();subpos++) { for(sublen=0;sublen<temp_str.length();sublen++) { if(str[subpos]==temp_str[sublen]) break; } if(sublen==temp_str.length()) temp_str.append(str,subpos,1); } return temp_str; } int main() { string instr; cout<<"输入一个字符串"<<endl; getline(cin,instr);//防止遇到空格就结束 string new_str=remove_same(instr); cout<<new_str<<endl; }
remove_same子函数用来实现对重复字符的判断,并得到没有重复字符的结果字符串
思路:创建一个temp_str用来存放结果字符串,最开始temp_str里面只有instr的第一个字符,sub_pos用来记录instr里下一个要进行判断的字符的位置,除了第一个字符,每个instr的字符都要进行判断,判断的方式是将每个字符与temp_str里的每个字符进行比较,若没有重复的,则将该字符添加到temp_str的后面,若有重复的,跳到下一个字符判断,直到所有的字符都判断完毕,最后存入temp_str的字符一定是没有重复元素的,输出即可。
程序运行结果:第二行是输入字符串,第三行是去除重复字符串的结果,可以看到重复空格也被去除了。