konwersja string na int
Ostatnio zmodyfikowano 2014-06-10 18:08
kilerfcb Temat założony przez niniejszego użytkownika |
konwersja string na int » 2014-06-09 20:45:55 Hej, mam takie zdanie
Napisz program, który wczytuje od użytkownika ciąg znaków zakończony wciśnięciem klawisza Enter (dopuszczalne są znaki tylko z alfabetu angielskiego). Program powinien wyświetlić: Liczbę białych znaków w tekście (rozumianych jako spacje i tabulator poziomy) Liczbę liter w tekście Liczbę samogłosek w tekście (tylko z alfabetu angielskiego) Sumę wszystkich cyfr podanych w tekście
Przykład
Podaj tekst: Ala ma 2 koty i 15 rybek. Białe znaki: 7 Litery: 15 Samogłoski: 8 Suma cyfr: 8
Nie umiem zrobić sumy cyfr, a w zasadzie to zrobić konwersje danego elementu zbioru string (który jest liczbą) na element int po czym mógłbym sumować. Przeglądałem różne polecenia w necie, ale nie za bardzo je kumam. Mógłby ktoś jakoś doradzić jak to zrobić ? |
|
michal11 |
» 2014-06-09 21:06:00 |
|
kilerfcb Temat założony przez niniejszego użytkownika |
» 2014-06-09 21:53:46 wiele mi to mówi...... |
|
pekfos |
» 2014-06-09 22:02:28 Bo faktycznie, nieźle wyrwał z tym string.. ;) Użyj isdigit() z <cctype> do określenia, czy znak jest cyfrą. Wartość cyfry to znak - '0'. |
|
kilerfcb Temat założony przez niniejszego użytkownika |
» 2014-06-09 22:07:47 no do tego doszedłem, ale sama konwersja elementu ktory jest liczba na int to jest magia, nic nie rozumiem z tych funkcji atoi itd... string n; cout << "wprowadz tekst.." << endl; getline( cin, n ); cout << "wprowadziles: " << n << endl; int bialeznaki = 0; int liczbaliter = 0; int samogloski = 0; int suma = 0;
for( int i = 0; i < n.length(); i++ ) { if( isspace( n[ i ] ) ) { bialeznaki++; } if( isalpha( n[ i ] ) ) { liczbaliter++; } if( n[ i ] == 'a' || n[ i ] == 'A' || n[ i ] == 'e' || n[ i ] == 'E' || n[ i ] == 'i' || n[ i ] == 'I' || n[ i ] == 'o' || n[ i ] == 'O' || n[ i ] == 'y' || n[ i ] == 'Y' || n[ i ] == 'u' || n[ i ] == 'U' ) { samogloski++; } if( isdigit( n[ i ] ) ) { ???????????????????????????? } }
cout << "bialych znakow: " << bialeznaki << endl; cout << "liczba liter: " << liczbaliter << endl; cout << "samogloski: " << samogloski << endl; cout << "suma liczb: " << suma << endl;
|
|
pekfos |
» 2014-06-09 22:10:31 nic nie rozumiem z tych funkcji atoi itd... |
Nie musisz używać żadnej funkcji, zwłaszcza, że nie masz na czym jej zbytnio użyć.. Napisałem jak to zrobić Wartość cyfry to znak - '0'. |
|
|
michal11 |
» 2014-06-09 22:12:16 @pekfos
kilerfcb potrzebował funkcji która zamienną string na int. W linku który podałem jest wszystko ładnie napisane, jedyny problem może być z jego kompilatorem jeżeli nie obsługuje c++11. Ewentualnie można skorzystać też z stringstream.
@kilerfcb
Wstawiaj kod w znaczniki. |
|
pekfos |
» 2014-06-09 22:13:58 kilerfcb potrzebował funkcji która zamienną string na int. |
Nieprawda. Chodzi o 'konwersję' char na int. Ma sumować cyfry, a nie liczby ze stringa. |
|
« 1 » 2 |