题目:move函数将字符串中的所有数字字符和小数点移到所有其他字符之后,并保 持数字字符、小数点和其他字符原先的先后次序。例如:原来字符串为"This5. is Dev-C++ 11",处理后为"This is Dev-C++ 5.11"。------------------------------------------------------------------------注意:请勿改动程序中的其他内容。----------------------------------------------------------------------*/#include<stdio.h>#include<string.h>#include<math.h>#include<ctype.h>#include<stdlib.h>void move(char a[],int len){ int i,j; char c; /**********Program**********//********** End **********/ }int main(){ char a[]="This5. is Dev-C++ 11"; int len=strlen(a); move(a,len); puts(a); return 0;}答案:for(i=0;i<len;i++)//怎么理解程序,求注释 { if(isdigit(a[i]) || a[i]=='.') { c=a[i]; for(j=i+1;j<strlen(a);j++) { a[j-1]=a[j]; } a[j-1]=c; len--; i--; } }
求理解程序move函数将字符串中的所有数字字符和小数点移到所有其他字符之后move函数的功能是将字符串中的所有数字字符和小数点(.)移到所有其他字符之后。它首先创建一个新的可变StringBuilder对象来保存排序后的内容,然后遍历传递进来的字符串中的每一个字符:如果该位是数字或者小数点“.”, 则将该位上的内容append到StringBuilder对象里面去; 否则直接insert在最前面即可。最后将StringBuilder对象toString()得到处理好了之后的文件内容并返回。