OJ.h
#ifndef __OJ_HEAD__
#define __OJ_HEAD__
int GetResult(const char *input,char *output);
#endif
OJ.cpp
#include "OJ.h"
/*
Description
给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串。需要保证字符出现的先后顺序。
Prototype
int GetResult(const char *input, char *output)
Input Param
input 输入的字符串
Output Param
output 输出的字符串
Return Value
0 成功
-1 失败及异常
*/
int GetResult(const char *input,char *output)
{
int flag=0;//用来标记input中待删的字符是否与output中的字符比较完毕,若比较完了都不相同则置为1,否则为0
int index=1;//output的下标
if(!input) return -1;//判断输入是否有字符
output[0]=input[0];
while(*input)
{
for(int j=0;j<index;j++)
{
if(*input==output[j])
{
flag=0;
break;
}
flag=1;
}
if(flag==1)
{
output[index]=*input;
index++;
if(index>1023) return -1;//主函数里只分配了1024个字节
}
input++;
}
output[index]=0;
if(!output) return -1;
return 0;
}
main.cpp
#include <iostream>
#include <string>
#include "OJ.h"
using namespace std;
int main(int argc,char** argv)
{
string temp;//用来存储从控制台获取的字符串
while(cin>>temp)
{
cout<<"请输入字符串:";
const char *input=temp.c_str();
char output[1024]={0};
GetResult(input,output);
cout<<"输出字符串:";
cout<<output<<endl;
};
return 0;
}