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

Jak policzyć samogłoski wystepujące w zdaniu

Ostatnio zmodyfikowano 2009-10-03 22:50
Autor Wiadomość
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ć.
C/C++
#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;
}
P-10592
pompom
» 2009-10-03 15:41:53
C/C++
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.
P-10594
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ć
P-10614
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źć.

C/C++
#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
P-10615
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
P-10616
« 1 »
  Strona 1 z 1