⑴ 编写函数int fun(char a[]),其功能是删除a指向的字符串中所有数字字符,统计被删除数字字符的个数并将其作为返回值返回,除了a指向的字符串以外不允许用其它数组。
⑵ 编写main()函数,调用fun()函数处理从键盘输入的包含数字字符的字符串,在屏幕上打印删除的字符个数以及删除数字字符之后的字符串。
【测试数据】 a1b23cd4 【运行结果】 4:abcd
思路,fun函数接收字符串,在fun函数里声明一个指针变量p指向a的地址,循环字符串,如果是数字,统计数字的加1,如果不是 就让*p++=a[i],(赋值后p地址加个一),就是在循环的过程中用指针给他赋值
代码:
#include<stdio.h>
int fun(char a[]);
int main() {
char arr[50];
fgets(arr,50,stdin);//输入字符串,用gets,scanf也行
int sz=fun(arr);//返回数字
printf("%d:",sz);
printf("%s",arr);
return 0;
}
int fun(char a[]){
int sz=0;
char *p=a;
for(int i=0;a[i]!='\0';i++){
if(a[i]>='0'&&a[i]<='9')
sz++;
else
*p++=a[i];//如果是字母就 赋值
}
*p='\0';//别忘了赋值最后 加一个'\0',要不然后面的那一坨也会被输出
return sz;
}//a1b23cd4 【运行结果】 4:abcd