按以下要求编写程序:
⑴ 编写函数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'作为结束符。表示空字符串。
示例:
2、cin.getline
cin.getline(数组名,接收长度)。也可以接收空格,以回车作为结束符。
示例:
接收字符串到a数组,实际最大接收长度为99位,最后一位保存字符串结束符‘\0’。所以在用它接收字符串时,要预设的长一点,不然会对后面的cin、cin.getline等函数产生莫名其妙的影响(后面接收不到)。
3、scanf
格式:scanf(格式控制,地址表列)
scanf接收字符串时,以空格、回车、Tab等作为结束符。
示例:
char a[100];
scanf("%s",a);