很容易懂.
但能告诉我strcat(a,&a[j]);是什么意思吗?
一分耕耘,一分收获。
#include <stdio.h>
void main()
{
int i,j=0;
char a[100];
char b[75]={0}; /*字符对应的ASCII码的十进制 0=48 9=57 A=65 Z=90 a=97 z=122 122-48+1=75*/
printf("请输入一个字符串:");
scanf("%s",a);
for (i=0;i<strlen(a);i++)
if (b[a[i]-48]!='1')
{ b[a[i]-48]='1';a[j]=a[i];j++; }
a[j]='\0';
printf("%s",a);
getch();
}
我想这个是最好的!
#include <stdio.h>
#include <malloc.h>
char allchar[256];
char *MALLOC(int i);
char *GetString(int i);
char *DelString(char *str);
char *MALLOC(int i)
{
char *ch;
ch=(char *)malloc(sizeof(char)*i);
if(ch==NULL)
{
fprintf(stderr," malloc() is not success!\n");
exit(1);
}
return ch;
}
char *GetString(int i)
{
int a;
char *p;
a=getchar();
if(a=='\n'||a==EOF)
{
p=MALLOC(i);
*(p+i-1)='\0';
return p;
}
else
{
p=GetString(i+1);
}
*(p+i-1)=a;
return p;
}
char *DelString(char *str)
{
char *str1,*str2;
str1=str2=str;
while(*str!=0)
{
if(allchar[(unsigned char)(*str)]==0)
{
allchar[(unsigned char)(*str)]=1;
*str1++=*str++;
}
else
str++;
}
*str1=0;
return str2;
}
int main(void)
{
char *str;
str=GetString(1);
printf("\n\nold strings: %s\n",str);
str=DelString(str);
printf("\n\nnew strings: %s\n",str);
free(str);
return 0;
}