zamiana każdej litery "x" na literę "y" w wektorze typu string
Ostatnio zmodyfikowano 2021-01-15 17:05
ALO_King Temat założony przez niniejszego użytkownika |
zamiana każdej litery "x" na literę "y" w wektorze typu string » 2021-01-15 16:52:37 string zmiana( vector < string > & wektor ) { char x, y; cout << "Podaj, którą literę chcesz wymienić : " << endl; cin >> x; cout << "Podaj na jaką chcesz ją wymienić : " << endl; cin >> y; for( int i = 0; i < wektor.size(); i++ ) { for( int j = 0; j < wektor[ i ].size(); j++ ) { if( wektor[ i ][ j ] = x ) { wektor[ i ][ j ] == y; } } } } Witam, tworzę funkcję która zamieni każdą (wybraną przez użytkownika) literę na inną (również podana przez użytkownika). Pracuje na wektorze stringów, więc muszę zamienić każde wystąpienie tej litery, w każdej linijce tekstu. Mam jednak problem, ponieważ wyskakuje mi błąd "Segmentation fault (core dumped)" Program się włącza, ale po wpisaniu zmiennych, wyskakuje własnie ten błąd. |
|
DejaVu |
» 2021-01-15 16:55:08 if( wektor[ j ] == x ) { wektor[ j ] = y; }
U Ciebie operator przypisania i porównania jest na odwrót. /edit: Tak swoją drogą... napisz sobie funkcję, która wykonuje zmianę w std::string, a nie w wektorze stringów. |
|
ALO_King Temat założony przez niniejszego użytkownika |
» 2021-01-15 17:00:00 Faktycznie, pomyliłem operatory, ale niestety błąd dalej jest taki sam |
|
DejaVu |
» 2021-01-15 17:01:56 Może segmentation fault jest w innej funkcji niż podana? Tu nie wychodzisz poza zakres vectora. |
|
pekfos |
» 2021-01-15 17:04:17 Mam jednak problem, ponieważ wyskakuje mi błąd "Segmentation fault (core dumped)" Nie zwracasz niczego z tej funkcji. Jeśli nie masz intencji niczego zwracać, typ zwracany powinien być void. |
|
ALO_King Temat założony przez niniejszego użytkownika |
» 2021-01-15 17:05:41 Dzięki bardzo, właśnie sam do tego doszedłem po ponownym przeanalizowaniu kodu. |
|
« 1 » |