编写c++程序,将用户输入的由数字字符和非数字字符组成的字符串中的数字提取出来

编写c++程序,将用户输入的由数字字符和非数字字符组成的字符串中的数字提取出来例如输入 asd12345rt456,fg9erp 则产生数字 12345,456,9 输出这些数字字符要求 连续的数字字符在同行输出 ,不连续的在不同行输出

#include"stdio.h"
int main()
{char a[1000];
int i=0;
printf ("输入字符串:\n");
gets(a);
printf("输出结果:\n");
while(a[i])
{
if(a[i]>='0'&&a[i]<='9')
printf("%c",a[i]);
if(a[i]>='0'&&a[i]<='9'&&(a[i+1]<'0'||a[i+1]>'9')) /*如果是最后一位数字,则换行*/
printf("\n");
i++;
}
return 0;}调试结果:
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-20
#include<iostream>
#include<string>
using namespace std;
void main()
{
string inPut;
bool flag=false;
cout<<"请输入字符串:"<<endl;
cin>>inPut;
for(int i=0;i<inPut.length();i++)
{
if(inPut[i]<='9'&&inPut[i]>='0')
{
flag=true;
cout<<inPut[i];
}
else if(flag)
{
flag=!flag;
cout<<endl;
}
}
cout<<endl;
}
第2个回答  2013-09-20
String s;cin>>s;bool sta=false;for(int i=0;i<strlen(s);i++){if(!(s[i]<='a'&&a[i]>='z'||a[i]<='A'&&s[i]>='Z')) { sta=true;cout<<s[i];}else if(sta){ sta=!sta; cout<<endl;}}