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

Wskaznik na tablice stringów

Ostatnio zmodyfikowano 2017-03-01 16:04
Autor Wiadomość
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.


C/C++
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 ];
        // cout << arr[i] << endl; // wypisywanie tego co zostalo wpisane na czas testow.
    }
    z = arr;
    cout << * z; z = z + 1; cout << * z; z = z + 1; cout << * z; z = z + 1; cout << * z; // wyswietlenie "halo"
    getch(); // na czas testów
    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 );
            //cout << *ile_tekstu_wsk;
            zamiana( tekst, ile_tekstu_wsk, morse_string_array );
           
            //cout << *morse_string_array;
            //getch();
        }
P-158410
mateczek
» 2017-03-01 14:32:29
C/C++
z = new string;

string arr[ * y ];
trochę zaszalałeś :)
C/C++
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
P-158411
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 ?
P-158412
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.
C/C++
#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;
   
}
P-158414
« 1 »
  Strona 1 z 1