if (strcmp(*(s+j),*(s+j+1))>0) {temp=*(s+j); *(s+j)=*(s+j+1); *(s+j+1)=temp; } } 8-16
#include
char str[50],*pstr;
int i,j,k,m,e10,digit,ndigit,a[10],*pa; printf(\ gets(str);
pstr=&str[0]; /*字符指针pstr置于数组str 首地址*/ pa=&a[0]; /*指针pa置于a数组首地址*/ ndigit=0; /*ndigit代表有多少个整数*/ i=0; /*代表字符串中的第几个字符*/ j=0;
while(*(pstr+i)!='\\0') {if((*(pstr+i)>='0') && (*(pstr+i)<='9')) j++; else
{if (j>0)
{digit=*(pstr+i-1)-48; /*将个数位赋予digit*/ k=1;
while (k *pa=digit; /*将数值赋予数组a*/ ndigit++; pa++; /*指针pa指向a数组下一元素*/ j=0; } } i++; } if (j>0) /*以数字结尾字符串的最后一个数据*/ {digit=*(pstr+i-1)-48; /*将个数位赋予digit*/ k=1; while (k for (m=1;m<=k;m++) e10=e10*10; /*e10代表位数所应乘的因子*/ digit=digit+(*(pstr+i-1-k)-48)*e10; /*将该位数的数值累加于digit*/ k++; /*位数K自增*/ } *pa=digit; /*将数值赋予数组a*/ ndigit++; j=0; } printf(\ j=0; pa=&a[0];