Jak policzyć samogłoski wystepujące w zdaniu
Ostatnio zmodyfikowano 2009-10-03 22:50
szkuner Temat założony przez niniejszego użytkownika |
Jak policzyć samogłoski wystepujące w zdaniu » 2009-10-03 13:49:21 Mam następujący problem szukałem na forum w necie a sam nie mam pomysłu na to jak po wpisaniu zdania można by było policzyć samogłoski i społgłoski wystepujące tylko na początku każdego wyrazu w tym podanym zdaniu. Na razie zrobiłem tyle w tym temacie ale nie mam pojęcia jak to rozwiążać. #include <iostream> #include <cctype> using namespace std; const int size = 80; char tekst[ size ]; int main() { int licz1 = 0; int inne = 0; int licznik = 0; int spol = 0; cout << "Podaj tekst:\n"; cin.get( tekst, size ); for( int i = 0; tekst[ i ] != 'q'; i++ ) { if( isalpha( tekst[ 1 ] ) ) { licz1++; } else { inne++; } if( tekst[ i ] == tekst[ 0 ] == 'a' || tekst[ 0 ] == 'š' || tekst[ 0 ] == 'y' || tekst[ 0 ] == 'i' || tekst[ 0 ] == 'e' || tekst[ 0 ] == 'ę' || tekst[ 0 ] == 'u' || tekst[ 0 ] == 'A' || tekst[ 0 ] == 'Ľ' || tekst[ 0 ] == 'Y' || tekst[ 0 ] == 'I' || tekst[ 0 ] == 'E' || tekst[ 0 ] == 'Ę' || tekst[ 0 ] == 'U' ) { licznik++; } else { spol++; } cout << "Liczba samogłosek:" << tekst[ i ] << endl; cout << "Liczba spolglosek" << spol << endl; cout << "liczba inne:" << inne << endl; } return 0; }
|
|
pompom |
» 2009-10-03 15:41:53 string t; cin >> t; unsigned int ileSamoglosek = 0, ileSpolglosek = 0; for( unsigned int i = 0; i < t.length(); i++ ) if( isalpha( t[ i ] ) &&( !i || t[ i - 1 ] == ' ' ) ) { const static char samogloski = "aeuio"; if( find( samogloski, & samogloski[ sizeof( samogloski ) - 1 ], tolower( t[ i ] ) != & samogloski[ sizeof( samogloski ) - 1 ] ) ileSamoglosek++; else ileSpolglosek++; } cout << "samo " << ileSamoglosek << " spol " << ileSpolglosek << endl;
Nie sprawdziłem tego, ale powinno działać, a jak nie to jakiś mały błąd. |
|
szkuner Temat założony przez niniejszego użytkownika |
» 2009-10-03 21:42:57 Powyższy kod nie chce mi działać a po drugie nie rozumie linijki z ifem jak można coś ustawić jako stałą a poźniej robić z tego tablice może mi to ktoś wytłumaczyć |
|
pompom |
» 2009-10-03 22:32:10 Błędy były dwa - literówki. Zjadłem ) i * (albo []). Pisałem to przecież tylko w poście. Były na tyle proste że powinienieś był raczej sam je znaleźć. #include <iostream> #include <string> #include <cctype> #include <algorithm>
using namespace std;
int main() { string t; getline( cin, t ); unsigned int ileSamoglosek = 0, ileSpolglosek = 0; for( unsigned int i = 0; i < t.length(); i++ ) if( isalpha( t[ i ] ) &&( !i || t[ i - 1 ] == ' ' ) ) { const static char samogloski[] = "aeuioy"; if( find( samogloski, & samogloski[ sizeof( samogloski ) - 1 ], tolower( t[ i ] ) ) != & samogloski[ sizeof( samogloski ) - 1 ] ) ileSamoglosek++; else ileSpolglosek++; } cout << "samo " << ileSamoglosek << " spol " << ileSpolglosek << endl; }
$ ./samo ala ma kota i psa o imieniu yeti samo 5 spol 3
|
|
szkuner Temat założony przez niniejszego użytkownika |
» 2009-10-03 22:50:08 No dzieki wielkie teraz tylko poznać te funkcje find i jestem w domu bo pierwszy raz coś takiego widze i troche mnie to przytłoczyło no ale jak na spokojnie próbuje to zrozumieć to już wsumie wiem o co tam biega dzieki wielkie |
|
« 1 » |