问题遇到的现象和发生背景

问题相关代码,请勿粘贴截图
#include <iostream>
using namespace std;
class Deduplicate
{
private:
char data[100];
char result[100];
int num;
public:
Deduplicate (int a=0){num=a;}
void input();
void process();
void sort();
void display( );
};
void Deduplicate::input()
{
cout<<"请输入一个字符串"<<endl;
cin>>data[100];
}
void Deduplicate::process()
{
int k=0;
result[0]=data[0];
for (unsigned int i=0; i <strlen(data); i++)
{
for (unsigned int j =0,f=0; j <strlen(result); j++)
{if(result[j]==data[i])
{f=1;break;}
if(f==0)
result[k++]=data[i];
}
}
result[k]='\0';
num=strlen(data)-strlen(result);
cout<<"共删除重复字符数为"<<num<<endl;
cout<<"删除重复字符后的结果为"<<result[k]<<endl;
}
void Deduplicate::sort()
{
for (int k = 0; k <result[k-1]; k++) {
if (result[k] >result[k+1]) {
char temp = result[k];
result[k] = result[k+1];
result[k+1] = temp;
}
}
cout<<"字符串排序后的结果为"<<result[k]<<endl;
}
void Deduplicate::display( )
{
}
int main()
{
Deduplicate test;
test.input();
test.process();
test.sort();
test.display( );
system("pause");
return 0;
}
运行结果及报错内容

我的解答思路和尝试过的方法
我想要达到的结果

#include <iostream>
using namespace std;
class Deduplicate
{
private:
char data[100];//存放输入的字符串。
char result[100];//存放处理后的字符串。
int num;//删除重复字符串后的字符串中的字符个数。
public:
Deduplicate (int a=0){num = 0;}
void input(){cin >> data;}//向data数组中输入存放字符串
//实现删除字符串中所有重复出现的字符。
void process()
{
int i=0,k=0;
num = 0;
for (i=0;data[i]!= '\0';i++)
{
for (k=0;k<num;k++)
{
if(result[k]== data[i])
break;
}
if(k==num)
result[num++]= data[i];
}
result[num]=0;
}
//对删除重复字符串结果进行排序。
void sort()
{
int i,j;
char ch;
for (i=0;i<num-1;i++)
{
for (j=0;j<num-1-i;j++)
{
if(result[j] > result[j+1])
{
ch = result[j];
result[j]= result[j+1];
result[j+1]= ch;
}
}
}
}
//输出字符串。
void display()
{
cout << result<<endl;
}
//获取删除重复字符数
int getNum()
{
return num;
}
};
int main()
{
Deduplicate test;
test.input();
test.process();
test.sort();
test.display();
cout << "去重后的长度:"<<test.getNum()<<endl;
return 0;
}