/*
功能:
给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串。需要保证字符出现的先后顺序。
接口函数:
int GetResult(const char *input, char *output)
参数:
input:输入的字符串
output:输出的字符串 输出参数(需考虑指针指向的内存区域是否有效):
返回值:
0 成功
-1 失败及异常
*/
#include <iostream>
#include <cstring>
using namespace std;
int GetResult(const char *input, char *output)
{
if (!input || !output) return -1; //输入或输出为空
int i, j, equ, num = 0;
int len = strlen(input);
output[0] = input[0];
for (i = 1; i < len; i++)
{
equ = 0;
for (j = 0; j <= num; j++)
if (output[j] == input[i])
{
equ = 1;
break;
}
if (!equ) output[++num] = input[i]; //output中依次存入判断过的不重复字符。
}
output[++num] = '\0';
return 0;
}
void main()
{
char *pInputStr = "abcddefasc";
int m = strlen(pInputStr);
//char pOutputStr[20];
char *pOutputStr = new char[m + 1];
GetResult(pInputStr, pOutputStr);
cout << pOutputStr << endl;
delete pOutputStr;
system("pause");
}
【C++】删除重复字符
最新推荐文章于 2024-03-06 14:35:19 发布