/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
程序功能:输入带有数字和字母的字符串,使用指针,将数字放置在字母前面(按输入顺序)。
样例1:
输入字符串:jngk2025hello
排序后的字符串: 2025jngkhello

样例2:
输入字符串:123abc666def
排序后的字符串: 123666abcdef
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,仅在
      Program-End之间填入若干语句。
      不要删除标志否则不得分。
      不要修改或删除Program-End之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
void fn(char* str){
	char *p,*q,ch;
	p = str;
	q = str;
/**********Program**********/
	while(*p != '\0'){//p用来遍历所有元素 
		if(*p >= '0' && *p <= '9'){//当前位置指针的元素为数字 
			ch = *p;//备份当前的数字 
			q = p;//q存储当前这个数位置的地址 
			while(q != str){//将p地址前所有的字母整体后移一位
			//到下一个元素地址为数组首地址或下一个元素为数字时停止 
				if(*(q-1) >='0' && *(q-1) <= '9'){
					break;
				}
				*q = *(q-1);
				q--;
			}
			*q = ch; 
		}
		p++;
	}
/**********  End  **********/  	
}
int main()
{
    char s[100];
    printf("输入字符串:");
    gets(s);
	fn(s);
    printf("排序后的字符串: %s\n",s);

return 0;
}