C语言编程:从键盘输入一个有空格的字符串,删除所有重复字符,按字符升序输出在屏幕上。怎么做?

要求:
1.用指针操作。
2.不得使用字符串处理库函数。
3.当输入为空字符串时输出(null)。
4.字符串最大长度为100。

代码文本:

#include "stdio.h"

int main(int argc,char *argv[]){

char a[101],*p,*px,t;

printf("Input a string...\n");

for(p=a,t=0;t<100;t++)//输入字符串

if((*(p+t)=getchar())=='\n')

break;

*(p+t)='\0';

for(p=a;*p;p++)//排序

for(px=p+1;*px;px++)

if(*p>*px){

t=*p;

*p=*px;

*px=t;

}

for(p=a;*p;p++){//删除重复字符

for(t=1;*p==*(p+t);t++);

if(t>1){

for(px=p;*px=*(px+t);px++);

p--;

}

}

printf(*a ? "\n%s\n" : "\n(null)\n",a);//输出

return 0;

}

供参考。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答