c语言删除字符串中数字,统计数字个数

⑴ 编写函数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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值