Wskaznik na tablice stringów
Ostatnio zmodyfikowano 2017-03-01 16:04
unbearable0 Temat założony przez niniejszego użytkownika |
Wskaznik na tablice stringów » 2017-03-01 14:12:15 Hej! Walczę własnie z małym projektem. Stworzyłem już funkcje, która zamienia stringa na tablice stringów. Wiem, że nie uda sie mi zwrocic tablicy stringów przez komende return dlatego podaje do funkcji wskaznik typu string *&, w trakcie pracy na tym wskazniku wewnatrz funkcji wszystko dziala poprawnie, tutaj akurat testowane dla podania string x = 'halo', kiedy jednak wyjde do funkcji glownej i próuje odwolac sie do tego wskaznika konsola wysypuje jakies smieci i na koncu sie zamyka. string zamiana( string x, int * y, string * & z ) { z = new string; string arr[ * y ]; for( int i = 0; i < * y; i++ ) { arr[ i ] = x[ i ]; } z = arr; cout << * z; z = z + 1; cout << * z; z = z + 1; cout << * z; z = z + 1; cout << * z; getch(); return x; }
int main() { int * ile_tekstu_wsk; string * morse_string_array; string tekst; int logic; int exit; while( exit ) { menu( logic ); if( logic == 1 ) { tekst = wczytaj_text( logic, ile_tekstu_wsk ); zamiana( tekst, ile_tekstu_wsk, morse_string_array ); }
|
|
mateczek |
» 2017-03-01 14:32:29 z = new string;
string arr[ * y ];
trochę zaszalałeś :) string zamiana( string x, int rozmiarTablicy, string * & z ) { z = new string[ rozmiarTablicy ];
A jak chcesz robić dynamiczne tablice stringów to jak najszybciej std::vector |
|
unbearable0 Temat założony przez niniejszego użytkownika |
odp » 2017-03-01 14:59:07 Tam faktycznie wyszedł bubel, jezeli chodzi o ten zapis z = new string; string[*y] tylko ze zmienna pokazywana przez wskaznik y to jest wlasnie z iloscelementow. A w trakcie poszukiwania odpowiedzi w internecie gdzies znalazle tą opcje z = new string i tak zostało. W każdym razie Funkcja jakby tworzy mi ta tablice poprawnie ale nadal nie moge zwrocic wskaznika do jej pierwszego elementu. A potrzebuje przekazac ta tablice do kolejnej funkcji, ktora bedzie ta tablice zamieniac na poszczegolne znaki w alfabecie morse'a. To też lepiej vectorem ? czy wskaznikiem ? |
|
mateczek |
» 2017-03-01 16:04:29 właściwie nie ma potrzeby konwertowania stringa na tablicę "charów" przy pomocy jakiś funkcji. Bo taka tablica w trybie do odczytu już jest wewnątrz obiektu klasy string. #include <iostream> using namespace std;
int main() { string s { "ala ma kota" }; const char * tablica = s.c_str(); cout << s[ 0 ] << " , " <<* tablica << " , "; tablica++; cout <<* tablica << endl; }
|
|
« 1 » |