// 请编写函数Void fun(char *s) 函数的功能在字符串中所有数字字符前加$字符
例如
输入A1B23CD45
输出 A$1B$2$3CD$4$5
1.开辟一个数组存放
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
void fun(char *s);
char ch[20];
scanf("%s", ch);
fun(ch);
printf("%s", ch);
return 0;
}
void fun(char *s)
{
char ch2[20];
strcpy(ch2, s);
char *i=ch2;
while(*i!='\0'){
if(*i<='9'&&*i>=0)
{*s='$';s++;*s=*i;i++;s++; }
else
{*s=*i;s++;i++;}
}
*s='\0';
}
2.动态数组
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
void fun(char *s);
char ch[100];
printf("请输入一个字符:");
gets(ch);
printf("原来的字符:");
printf("%s\n", ch);
fun(ch);
printf("后来的字符:");
printf("%s", ch);
}
void fun(char *s)
{
char *p;
p=(char*)malloc(2*strlen(s));
int i=0,j=0;
while(s[i]!='\0') //遍历原来数组ch
{
if(s[i]>='0'&&s[i]<='9'){p[j]='$';j++;p[j]=s[i];i++;j++; }
else{p[j]=s[i];i++;j++;}
}
p[j]='\0';
strcpy(s,p);
free(p);
}