Tablica stringów a tablica charów

0

Mam prośbę czy mógłby ktoś mi przedstawić jakiś prosty pomysł przerzucenia z tablicy stringów (są tam kody złożone z 0 lub 1) na tablicę charów. Nie wiem w jaki sposób po prostu przepisać tablicę stringów na tablicę charów. Muszę skorzystać z obcięcia bitu a na tablicy stringów nie mogę tego zrobić.

3

Może napisz jaśniej co chcesz osiągnąć. Najlepiej z przykładami.

0

Mam tablicę stringów gdzie w każdy element jest ciągiem znaków 0 i 1 np. string tab[]={011101,11101,1111,000000001,10111101} i chcę, żeby te wartości zapisać w tablicy charów.

PS: W zasadzie to nie nawet charów ale unsigned charów żeby były zapisane na 8 bitach.

1
int main()
{
    string tab[2];
    tab[0] = "01010101000010100";
    tab[1] = "0101000100101010110";
    char tekst[tab[0].length()]
    strcpy(tekst, tab[0].c_str());
    return 0;
}

??

1

Czyli jaki chcesz efekt? Mają być połączone? Zsumowane? Przekształcone? Tak ciężko dać przykład jak nie umiesz tego opisać?

0
gswidwa napisał(a):
int main()
{
string tab[2];
tab[0] = "01010101000010100";
tab[1] = "0101000100101010110";
char tekst[tab[0].length()]
strcpy(tekst, tab[0].c_str());
return 0;
}

??

Niestety nie działa to na unsigned charach. Próbowałem to zrobić w ten sposób

void zamianastringnachar(unsigned char charkody[],string kody[])
{
    string ciag;//ciag liczb reprezentujacych kod
    for (int i = 0; i <= 127; ++i)
    {
        ciag = kody[i];
        strcpy(charkody[i], ciag.c_str);
    }
} 

PS:Mniej więcej wygląda to tak mam tablicę strignów gdzie są te kody zero jedynkowe i muszę zrobić z tego tablice unsigned charów też tyle samo elementowa w moim przypadku 128 żeby te kody zapisać w tablicy unsigned charów.
Jeśli ma to coś to rzeczy to kody są maksymalnie 7 liczbowe

1

?

int main()
{
    string tab[2];
    tab[0] = "01010101000010100";
    tab[1] = "0101000100101010110";
    unsigned char tekst[tab[0].length()];
    strcpy((char*)tekst, tab[0].c_str());
    cout << tekst;
    return 0;
}
0
 void zamianastringnachar(unsigned char charkody[],string kody[])
{
    string ciag;
    for (int i = 0; i <= 127; ++i)
    {   
        ciag = kody[i];
        unsigned char tekst[ciag.length()];
        strcpy((char*)tekst, kody[i].c_str());
    }
}

Wyskakuje mi błąd "function call must have a constant value in a constant expression"

0
    string ciag;
    int rozmiar = zaokraglij(volume, 8) * 7;
    for (int i = 0; i <= 127; ++i)
    {
        ciag = kody[i];
        unsigned char *tablica = new unsigned char(rozmiar);
        strcpy((char*)tablica, ciag.c_str());
        obciecieBitu(tablica, volume, data, numery);
        ciag = "";
    }

Czy to będzie poprawne zapisanie tych stringów do tablicy ?
Wiadomo, że maksymalny rozmiar stringu to 7

3
void zamianastringnachar(unsigned char charkody[],string kody[])
{
    for (int i=0;i<128;++i) // to <=127 czemu nie <128
    {  
        const unsigned char *tekst=reinterpret_cast<const unsigned char *>(kody[i].c_str());
        unsigned char *ub=reinterpret_cast<unsigned char *>(&kody[i][0]); // jest to UB ale jeszcze nie spotkałem środowiska gdzie zadziała niezgodnie z oczekiwaniem.

    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0