#include<stdio.h>
int main()
{
int count=0,i;
char *p,s[30],r[30]; //s[30]输入字符串,r[30]接收子串
printf("请输入主串:");
scanf("%s",s);
p=s;
for(i=0;i<30;i++)
{
r[i]=NULL;
}
while (*p)
{
for(i=0;i<=count+1;i++)
{
if(r[i]==NULL)
{
r[i]=*p;count++;break; //count表示不重复的字符个数,r[i]为空时,输入对应的字符
}
else if(r[i]==*p) //查到重复的字符,不输入r[i]中
{
break;
}
}
p++;
}
printf("Output:%d\n",count);
printf("The answer is “%s” with the length of %d",r,count);
return 0;
}
-----------------------------------------------------------------------------------------------------
心得:
1. r[i]要全部清0,否则r[i]会充满随机数,比如我的就全是“烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫”
2.可以不用p复制s,直接以s代替p在while中,不过你还是要设另一个变量,来显示s具体到哪一位了。