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

[C++] Program wypisujące wszystkie wyrazy, których pierwszy znak jest równy ostatniemu.

Ostatnio zmodyfikowano 2014-10-08 01:00
Autor Wiadomość
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:
C/C++
#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; // WARUNEK- wszystkie wyrazy, których pierwszy znak jest równy ostatniemu
    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;
}
P-118120
michal11
» 2014-10-08 01:00:22
Za bardzo kombinujesz, wystarczy skorzystać z wygodnych funkcji które już instnieją.
C/C++
istringstream iss( zdanie );
string wyraz;
while( iss >> wyraz )
{
    if( * wyraz.begin() ==*( wyraz.end() - 1 ) )
    {
        cout << wyraz << endl;
    }
}
P-118129
1 « 2 »
Poprzednia strona Strona 2 z 2