删除字符串中的数字字符

来源:互联网 发布:咏春拳网络公开课20 编辑:程序博客网 时间:2024/04/28 18:48


按以下要求编写程序:

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



0 0
原创粉丝点击