求理解程序move函数将字符串中的所有数字字符和小数点移到所有其他字符之后

题目: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--;
}
}
最新回答
等痕迹变成年轮

2024-10-13 13:25:27

求理解程序move函数将字符串中的所有数字字符和小数点移到所有其他字符之后

move函数的功能是将字符串中的所有数字字符和小数点(.)移到所有其他字符之后。它首先创建一个新的可变StringBuilder对象来保存排序后的内容,然后遍历传递进来的字符串中的每一个字符:如果该位是数字或者小数点“.”, 则将该位上的内容append到StringBuilder对象里面去; 否则直接insert在最前面即可。最后将StringBuilder对象toString()得到处理好了之后的文件内容并返回。