删除字符串中的数字字符


按以下要求编写程序:

⑴ 编写函数int fun(char a[]),其功能是删除a指向的字符串中所有数字字符,统计被删除数字字符的个数并将其作为返回值返回,除了a指向的字符串以外不允许用其它数组。

⑵ 编写main()函数,调用fun()函数处理从键盘输入的包含数字字符的字符串,在屏幕上打印删除的字符个数以及删除数字字符之后的字符串。

输入描述

输出描述

用冒号连接被删除数字字符的个数和剩下的字符


输入样例
a1b23cd4
输出样例
4:abcd





#include<iostream>

using namespace std;

int fun(char a[]){
  int m=0;
  char *q=a;
  char *p=a;
   do{
     if(*p>='1'&&*p<='9'){
       m++;
     }else{
       *q=*p;
       *q++;
     }
     *p++;     
   }while(*p !='\0');
  
  return m;
}

int main() {
  // Place your code here
   char s[10]="a1b23cd4";

   int m=0;
   int i=0;
   m=fun(s); 
   cout<<m<<":";
   for(i=0;i<m;i++){
   	cout<<s[i];
   }
  return 0;
}


1、gets

格式:gets(字符指针);

头文件:stdio.h(c中),c++不需包含此头文件

原型:char *gets( char *buffer );

可以接收空格,它以回车作为结束符,自动在后面加上‘\0'作为结束符。表示空字符串。

示例:

   char a[100];

   gets(a);


2、cin.getline

cin.getline(数组名,接收长度)。也可以接收空格,以回车作为结束符。
示例:

   char a[100];

   cin.getline(a,100);

接收字符串到a数组,实际最大接收长度为99位,最后一位保存字符串结束符‘\0’。所以在用它接收字符串时,要预设的长一点,不然会对后面的cin、cin.getline等函数产生莫名其妙的影响(后面接收不到)。


3、scanf

格式:scanf(格式控制,地址表列)

scanf接收字符串时,以空格、回车、Tab作为结束符。

示例:

char a[100];

scanf("%s",a);



  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值