`

去掉字符串中的重复字符

 
阅读更多

题目:

    通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串
过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
比如字符串“abacacde”过滤结果为“abcde”。
   要求实现函数:
void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);
          【输入】pInputStr: 输入字符串
           lInputLen: 输入字符串长度
          【输出】pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
          【注意】只需要完成该函数功能算法,中间不需要有任何IO 的输入
           输出
           示例
           输入:“deefd” 输出:“def”
           输入:“afafafaf” 输出:“af”
           输入:“pppppppp” 输出:“p”

 

自己实现的代码:

#include "StdAfx.h"
#include "subStr.h"
#include<iostream>
using namespace std;

void stringFilter(const char *pInputStr,long lInputLen,char * pOutputStr){
	short table[26]={0};
	char *pOutputStrRuler=pOutputStr;
	int i;
	if(lInputLen==0)
	{
		printf("invalid parameters");
		return;
	}
	if(lInputLen==1){
		printf("%s\n",pInputStr);
		return;
	}
	for(i=0;i<lInputLen;i++){
		if((table[pInputStr[i]-'a']))
		{
			continue;
		}
		*pOutputStrRuler=pInputStr[i];
		table[pInputStr[i]-'a']=1;
		pOutputStrRuler++;
	}
	*pOutputStrRuler='\0';

	printf("%s\n",pOutputStr);
}


int main(){
	
	char *pInputStr=(char *)malloc(20);
	char *pOutputStr=(char *)malloc(20);
	scanf("%s",pInputStr);
	stringFilter(pInputStr,strlen(pInputStr),pOutputStr);
	system("pause");
	return 0;
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics