一道字符串更改顺序的填空题
#include <stdio.h>#include <string.h>
#include <stdlib.h>
#include <ctype.h>
char *fun(char *s)
{ int i, j, k, n; char *p, *t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0; k=0;
for(i=0; i<n; i++)
{ if(isdigit(s[i])) {
/**********found**********/
p[j]=s[i]; j++;}
else
{ t[k]=s[i]; k++; }
}
/**********found**********/
for(i=0; i<k; i++) p[j+i]= t[i];
p[j+k]=0;
/**********found**********/
return s;
}
main()
{ char s[80];
printf("Please input: "); scanf("%s",s);
printf("\nThe result is: %s\n",fun(s));
}
此题意思是输入一串字符然后将此字符串里的数字找出后排在前面,后面是字符.例如:输入jsk4%&51jj,输出451jsk%&jj,请高手指点错误在哪里!
[此贴子已经被作者于2006-9-20 19:38:06编辑过]