请各路大神看一下原题,再查看一下我的代码有什么错误!
输入一个长度不超过30的字符串,内有数字字符和非数字字符(不包括“-”),统计其中包含了多少个非负整数,并输出这样的非负整数。
输入
一个长度不超过30的字符串,其中不包括“-”。
输出
字符串中包含的非负整数,一个一行。如果没有数据,什么都不输出。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i, k = 0;
char s[40];
cin.getline(s, 40);
for (i = 0; i < strlen(s); i++)
{
if (s[i] >= '0' && s[i] <= '9')
if (i == 0 || (s[i - 1] < '0' || s[i - 1]>'9') && s[i - 1] != '-')
{
while (s[i] >= '0' && s[i] <= '9' && i < strlen(s))
{
cout << s[i++];
}
cout << endl;
}
}
}