/*按以下要求编写程序。
⑴ 编写函数void fun(char xx[]),其功能是在xx所指向的字符串中的所有数字字符之前分别插入1个字符’$’。
⑵ 编写main函数。从键盘输入一个包含数字字符的字符串,调用fun()函数对该字符串作变换处理,在屏幕上打印处理后的字符串。
【测试数据】 A1B23CD45 【运行结果】 A$1B$2$3CD$4$5
输入用例
A1B23CD45
输出用例
A$1B$2$3CD$4$5
#include#include char xx[100]; void fun(char xx[])//等同于 void fun(char *xx) { char i,*y,t[100]; y=t;//可以将字符数组名赋值给字符指针 for(i=0;xx[i]!=' ';i++) { if(xx[i]>='0'&&xx[i]<='9') { *y++='$';//若满足0<=xx[i]<=9的条件,先将'$'赋值给y指针指向的地址的变量t[下标],然后y指针地址加一 } *y++=xx[i];//不满足if条件,直接将xx[i]赋值给y指针指向的地址的变量t[下标],然后y指针地址加一 } *y=' ';//当while退出循环时,y指针的地址因循环而自加,会导致y指针指向的最后一个变量未赋值而出现乱码。 strcpy(xx,t); //xx=t;不能将其他的数组名赋值给数组名, 给数组名赋值是毫无根据的。一个指针的含义是“这里有一个元素,它的后面可能还有其它元素”, //一个数组名的含义是“这里是一个数组中的第一个元素,它的后面没有数组元素,并且只有通过数组下标才能引用它后面的数组元素”。 //printf("%sn",xx); } int main() { int number,i=0; char xx[100]; while((xx[i]=getchar())!='n') i++; xx[i]=' '; fun(xx); for(i=0;xx[i]!=' ';i++) printf("%c",xx[i]); return 0; }


![⑴ 编写函数void fun(char xx[]),其功能是在xx所指向的字符串中的所有数字字符之前分别插入1个字符‘$‘。 ⑴ 编写函数void fun(char xx[]),其功能是在xx所指向的字符串中的所有数字字符之前分别插入1个字符‘$‘。](http://www.mshxw.com/aiimages/31/629410.png)
