填空题

请补充函数fun(),该函数的功能是:把一个字符串中的字符(字母)按从小到大排序,并把这个全部由字母组成的字符串保存在原串中,函数返回这个字符串的长度。例如;输入“cixbr2.3”,如果为bcirx,字符串长度为5。
注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
#include <stdio.h>
#define N 20
int fun (char *str)

int i=0,j=0,k=-0,m=0;
char t;
char *p=str;
while(*p)

if((*p>=’A’&&*p<=’Z’)||(*p>=’a’
&&*p<=’z’))
【1】
p++;

*(str+i)=’\0’;
【2】 ;
while(*(p+j))

k=j;
【3】 ;
while (*(p+k))

if(*(p+k)<*(str+m)

t=*(str+m);
*(str+m)=*(p+k);
*(p+k)=t;

k++;

j++;

return i;
main() char str[81];
iht n;
clrscr();
printf("Input the original string ");
gets(str);
printf("*** The Original string ***In");
puts(str);
printf("*** The nwe string ***\n");
n=fun(str);
puts(str);
printf("***The length of new string is:
%d***\n",n);

【参考答案】

[1] *(str+i++)=*p [2] p=str [3] m=j