帮我看看如何改进!新手
输入一个若干字符的字符串,分别找出其中的字母和数字,其余的字符一概忽略。将重复的去掉后,分别按从小到大的顺序排列后输出。#include"stdio.h"
main()
{
char str[50],temp;
int n,i,k;
printf("Input a string:");
scanf("%s",str);
printf("%s\n",str);
/*此只留数字,大小写字母*/
for(n=0;str[n]!='\0';n++)
{
if((str[n]>=48&&str[n]<=57)||(str[n]>=65&&str[n]<=90)||(str[n]>=97&&str[n]<=122))
continue;
else
for(k=n; str[k]!='\0';k++)
str[k]=str[k+1];
n--;
}
printf("\n%s",str);
printf("\n^o^");
/*剔除重复的字符*/
for(n=0;str[n]!='\0';n++)
for(k=n+1;str[k]!='\0';k++)
if(str[n]==str[k])
for(i=k;str[i]!='\0';i++)
{
str[i]=str[i+1];
k--;
}
printf("\n%s",str);
/*字符排序*/
for(n=0;str[n]!='\0';n++)
for(i=n+1;str[i]!='\0';i++)
if(str[n]>str[i])
{
temp=str[n];
str[n]=str[i];
str[i]=temp;
}
printf("\n%s",str);
}
[ 本帖最后由 chenxiangcic 于 2011-10-12 19:36 编辑 ]