/*---------------------------------------------------------------------- 【程序设计】 ------------------------------------------------------------------------ 程序功能:输入带有数字和字母的字符串,使用指针,将数字放置在字母前面(按输入顺序)。 样例1: 输入字符串:jngk2025hello 排序后的字符串: 2025jngkhello 样例2: 输入字符串:123abc666def 排序后的字符串: 123666abcdef ------------------------------------------------------------------------ 注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,仅在 Program-End之间填入若干语句。 不要删除标志否则不得分。 不要修改或删除Program-End之外的内容否则不得分。 ----------------------------------------------------------------------*/ #include 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; }