[C++] Program wypisujące wszystkie wyrazy, których pierwszy znak jest równy ostatniemu.
Ostatnio zmodyfikowano 2014-10-08 01:00
gienekmiecio Temat założony przez niniejszego użytkownika |
» 2014-10-07 22:15:23 Poprzednie próby nie miały sensu, więc cofając to jest wyjściowy kod który nadal nie działa: #include <iostream> #include <cstdlib> #include <ctime> #include <string>
using namespace std;
int main() { cout << "Napisz krotkie zdanie:"; string zdanie; int dlugosc = 0; getline( cin, zdanie ); dlugosc = zdanie.length(); cout << "1) Zdanie wypisane w kolumnie: " << endl; for( int i = 0; i <= dlugosc; i++ ) { if( zdanie[ i ] == ' ' ) { cout << "" << endl; } else { cout << zdanie[ i ]; } } cout << endl << "2) Zdanie wypisane w kolumnie (tylko wyrazy spelniajace warunek): " << endl; string lol = ""; int lol2; int b = 0, c = 0; for( int i = 0; i < dlugosc; i++ ) { if( zdanie[ i ] == ' ' ) { cout << "" << endl; lol.erase(); } else { c = c + 1; lol = lol + lol[ b ] + zdanie[ i ]; lol2 = lol.length() - 1; if( lol[ lol2 ] == lol[ 0 ] ) { b = 0; cout << lol; lol.erase(); b = b + c + 1; } } } return 0; }
|
|
michal11 |
» 2014-10-08 01:00:22 Za bardzo kombinujesz, wystarczy skorzystać z wygodnych funkcji które już instnieją. istringstream iss( zdanie ); string wyraz; while( iss >> wyraz ) { if( * wyraz.begin() ==*( wyraz.end() - 1 ) ) { cout << wyraz << endl; } }
|
|
1 « 2 » |