Mam problem z zadaniem na SPOJ'u. A dokładnie z zliczaniem wyrazów i liczb.
Napisz program, który liczy, ile wyrazów i liczb znajduje się w podanej linii.
Wejście
Na wejście programu podana zostanie pewna ilość zestawów danych. Poszczególne zestawy składają sie z liczb całkowitych i wyrazów (wyraz = ciąg liter) rozdzielonych spacjami oraz kończą się znakiem nowej linii.
Wyjście
Na wyjściu ma się pojawić ilość liczb i wyrazów znajdujących się w poszczególnych liniach. Ilość liczb należy oddzielić spacją od ilości wyrazów, a po ilości wyrazów ma się pojawić znak nowej linii.
Przykład
Wejście:
Romek ma 2 koty i 3 psy 2 plus 2 jest rowne 4
Wyjście:
2 5 3 3
Napisałem takie coś:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char tekst[128];
int licznik1=0;
int licznik2=0;
cin.getline(tekst,128);
for(int i=0; tekst[i] != '\0'; ++i)
{
if (tekst[i]==' ')
licznik1++;
if (tekst[i] >= '0' && tekst[i] <= '9')
licznik2++;
}
cout<<licznik1+1;
cout<<licznik2;
return 0;
}
Wiem. Zlicza tu cyfry, a nie liczby. Mógłbym prosić o pomoc? :)