一小程序

求助一小程序输入一串字符:如statement输出:staemn删除字符中相同的一个 [解决办法]感觉题目不是很明朗,我

求助一小程序
输入一串字符:如statement

输出:staemn    

删除字符中相同的一个


[解决办法]
感觉题目不是很明朗,我猜测的意思啊:使得一个字符串中的字符只出现一次,如题中的statement
't '出现了3次,只保留第一次出现的字符,变成staemen
'e '出现了2次,staemen -> staemn
是这样吗?


[解决办法]
#include <iostream>
#include <string>
using namespace std;

char* fun(char *a,int n)
{
char *s;
s=a;
int i,j;
for(i=0;i <n-1;i++)
for(j=i+1;j <n;j++)
if(a[i]==a[j])
a[j]=-1;
for(i=0,j=0;i <n;i++)
if(a[i]!=-1)
s[j++]=a[i];
return s;
}

int main()
{
string str;
cin> > str;
int len=str.length();
char* a=(char*)str.c_str();
char* s;
s=fun(a,len+1);
cout < <s;
return 0;
}
[解决办法]
C版的
#include <stdio.h>
#include <stdlib.h>

int main()
{
char str[20], *ptr1, *ptr2;
ptr1 = str;

printf( "Please input a string: ");
gets(str);
while ( *ptr1 != '\0 ')
{
for (ptr2=ptr1+1; *ptr2 != '\0 '; ptr2++)
{
if ( *ptr2 == *ptr1)
*ptr2 = -1;
}
ptr1++;
}
printf( "Now,the string is: ");
for (ptr1=str; *ptr1 != '\0 '; ptr1++)
if( *ptr1 != -1)
printf( "%c ", *ptr1);

system( "pause ");
return 0;
}

[解决办法]
#include <stdio.h>
int main()
{
char str[512];
char str2[512];
int i,j,k,num=0,count=-1;

strcpy(str, "statement ");
k=0;
for(i=0;i <strlen(str);i++)
{
num=0;
for(j=0;j <i;j++)
{
if(str[i]==str[j])
{
num++;
}

}
if(num==0)
{
str2[k]=str[i];
k++;
}
}
printf( "%s\n ",str2);
}