您的位置:首页 > 其它

华为机试题目:删除重复字符

2012-09-12 12:08 351 查看
#include <stdio.h>
#include <string.h>

//pInputStr中是原来待处理的字符串,m是其大小
//pOutputStr是删除重复后的字符串,其大小用n返回
void RemoveRepeatChar(const char* pInputStr, int m,char* pOutputStr, int* n)
{
int k = 0;	//开始时,pOutputStr是空的,所以赋值0
//遍历pInputStr中的字符
for( int i = 0; i < m; i++)
{
char Test_char = pInputStr[i];	//检测这个字符是否出现过
int j =0; //用于遍历pOutputStr
for( j = 0; j  < k; j++)
{
//如果有重复的字符,直接结束循环
if( pOutputStr[j] == Test_char)
break;
}

//判断Test_char是否出现过,如果j遍历到了最后,那么一定没有重复了
if( j == k)
{
pOutputStr[k] = Test_char;
k++;	//长度加1
}
}

//遍历结束, 在pOutputStr后面加'\0'
pOutputStr[k] = '\0';
//将k赋值给n,返回
*n = k;
}

//测试
int main()
{
char buf[] = "abcdefbcd";
char res[32];
int k = 0; //用于返回res大小
RemoveRepeatChar(buf,sizeof(buf),res,&k);
printf("%s",res);
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐