题目描述
从键盘输入一个由大、小写字母和数字组成的任意一个字符串(不需判断),其长度不小于8,不大于30。现要求将字符串中的所有数字字符删除,其他字符依照原有顺序保持不变,并统计删除的数字的个数。
输入
只有一行,包含只由大、小写字母和数字组成的一个字符串(其长度8≤L≤30)。
输出
共有两行:
第一行:为删除数字字符后的字符串;
第二行:为统计删除的数字的个数。
样例输入 Copy
ABCD123efg678
样例输出 Copy
ABCDefg 6
问题分析:在到达数字时,如何让其跳过,1、让后面的向前移,但要注意变化的那一位.2、在遇到时要跳过不输出;
代码展示:
1、
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string s;
cin>>s;
int n=s.size();
int c=0;
for(int i=0;i<n;i++)
{
if(s[i]>='0'&&s[i]<='9')
{
for(int j=i;j<n;j++)
{
s[j]=s[j+1];
}
i--;
c++;
}
}
cout<<s<<endl<<c;
return 0;
}
2、#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string s;
cin>>s;
int n=s.size();
int c=0;
for(int i=0;i<n;i++)
{
if(s[i]>='0'&&s[i]<='9')
{
c++;
continue;
}
cout<<s[i];
}
cout<<endl<<c;
return 0;
}