例如:输入字符串:abceaacfeg 输出:abcefg
int GetResult(const char *input, char *output)
*input 是输入字符串,*output是输出字符串
#include<iostream>
#include <string>
using namespace std;
int GetResult(const char *input, char *output)
{
int i;
int j;
int t;
int k = 0;
char *temp = new char[1000];
cout<<"temp= ";
while (*input)
{
*(temp + k) = *input;
cout<<*(temp + k);
k++;
input++;
}
cout<<endl;
cout<<"k="<<k<<endl;
for (i=0; i<k; i++)
{
for (j=i+1; j<k; j++)
{
if (*(temp+i) == *(temp+j))
{
for (t=j; t<k; t++)
{
*(temp+t) = *(temp+t+1);
}
k--; //长度减1
j--; //第j+1个元素移到j位置上
}
}
}
cout<<"kk="<<k<<endl;
cout<<"output= ";
for (int i = 0; i < k; i++)
{
*(output + i) = *temp;
temp++;
cout<<*(output + i);
}
return -1;
}
int main()
{
char *input = "abceaacfeg";
char *output = new char[1000] ;
GetResult(input, output);
}
1.调用函数里面的形参input是指向常字符串,所以不能直接改变input的值
2.关于移位的逻辑要弄明白