Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

konwersja string na int

Ostatnio zmodyfikowano 2014-06-10 18:08
Autor Wiadomość
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ć ?
P-111839
michal11
» 2014-06-09 21:06:00
P-111845
kilerfcb
Temat założony przez niniejszego użytkownika
» 2014-06-09 21:53:46
wiele mi to mówi......
P-111850
pekfos
» 2014-06-09 22:02:28
wiele mi to mówi......
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'.
P-111853
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...
C/C++
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;
P-111855
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'.
P-111857
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.
P-111858
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.
P-111859
« 1 » 2
  Strona 1 z 2 Następna strona