Rozpoznawanie znaku spacji przez program
Ostatnio zmodyfikowano 2016-10-02 17:08
bati22 Temat założony przez niniejszego użytkownika |
Rozpoznawanie znaku spacji przez program » 2016-10-02 14:43:04 Witam Napisałem program, który ma zliczać liczbę słów w tekście rozpoczynających się od samogłoski, spółgłoski, bądź innego znaku. Niestety, gdy używałem w nim znaku spacji, program go nie rozpoznawał i musiałem zmienić znak spacji na dolną kreskę, co widać w poniższym kodzie. #include <iostream> #include <cctype>
using namespace std;
int main() { cout << "Podawaj słowa (pojedyncze q kończy): " << endl; char ch = 'a'; bool spacja = true; int LiczbaSamoglosek = 0; int LiczbaSpolglosek = 0; int LiczbaPozostalychZnakow = 0; bool CzyJestToSpolgloska = true; int TablicaSamoglosek[ 9 ] = { 'a', 'ą', 'e', 'ę', 'i', 'o', 'ó', 'u', 'y' }; cin >> ch; while( !( ch == 'q' ) ) { if( spacja ) { if( isalpha( ch ) ) { ch = tolower( ch ); for( int i = 0; i < 9; i++ ) { if( ch == TablicaSamoglosek[ i ] ) { LiczbaSamoglosek++; CzyJestToSpolgloska = false; break; } } if( CzyJestToSpolgloska ) LiczbaSpolglosek++; CzyJestToSpolgloska = true; } else LiczbaPozostalychZnakow++; } if( ch == '_' ) spacja = true; else spacja = false; cin >> ch; } cout << LiczbaSpolglosek << " słów zaczyna się od spółgłosek" << endl; cout << LiczbaSamoglosek << " słow zaczyna się od samogłosek" << endl; cout << LiczbaPozostalychZnakow << " słów nie zalicza się do żadnej z tych kategorii." << endl; return 0; }
Moje pytanie brzmi: jak zastąpić znak dolnej kreski znakiem spacji? Próbowałem przypisać w pętli zmiennej boolowskiej spacja wartość isspace(ch), jednak to też nie zdaje egzaminu. |
|
Monika90 |
» 2016-10-02 16:52:51 Operator >> pomija spacje przy odczycie ze strumienia, wykonaj instrukcję std::cin >> std::noskipws;
to da się odczytać spacje |
|
bati22 Temat założony przez niniejszego użytkownika |
» 2016-10-02 17:08:02 Ok, dzierga. Bardzo dziękuję za pomoc :) |
|
« 1 » |