串的基本操作一(串)
时间: 1ms 内存:64M
描述:
任意输入一行字符串,检索重复出现的字符。将原字符串中的重复字符删除后输出,同时输出有哪些字符是重复的。
输入:
输出:
示例输入:
ads_fagaerididfhdus_afiew
示例输出:
ads_fgerihuw
ads_fei
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
#include<string.h>
int main()
{
char a[200],b[200];
int c[200]={0};
scanf("%s",a);
int i,j,k=0,flag;
for(i=0;a[i]!='\0';i++)
{
flag=0;
if(c[i]==1)
continue;
for(j=i+1;a[j]!='\0';j++)
{
if(a[i]==a[j])
{
c[j]=1;
flag=1;
}
}
if(flag==1)
{
b[k]=a[i];
k++;
}
}
for(i=0;a[i]!='\0';i++)
if(c[i]==0)
printf("%c",a[i]);
printf("\n\n");
for(i=0;i<k;i++)
printf("%c",b[i]);
return 0;
}
参考答案(时间最优[0]):
#include<stdio.h>
#include<string.h>
int rem[260];
char str[1000];
int main()
{
int i,len;
gets(str);
len=strlen(str);
memset(rem,0,sizeof(rem));
for(i=0;i<len;i++)
{
if(rem[str[i]]==0) {printf("%c",str[i]);rem[str[i]]++;}
else rem[str[i]]++;
}
printf("\n\n");
for(i=0;i<len;i++)
{
if(rem[str[i]]>1) {printf("%c",str[i]);rem[str[i]]=0;}
}
printf("\n");
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。