Operacje na char*

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
Awatar użytkownika
Michal
Młodszy majsterkowicz
Posty: 8
Rejestracja: 25 cze 2012, 09:47
Kontakt:

Operacje na char*

Post autor: Michal » 5 sie 2012, 13:59

Witam. Macie może pomysł, jak podzielić ciąg zadeklarowany jako char* na dwa, jeden zawierający pięć pierwszych znaków , drugi resztę?

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


qwe
Młodszy majsterkowicz
Posty: 4
Rejestracja: 28 lip 2012, 12:05

Re: Operacje na char*

Post autor: qwe » 5 sie 2012, 19:24

Pisane z pamięci. Powinno zadziałać.

Kod: Zaznacz cały

char * do_podzielenia = "1234567890";
char pierwsze_5[6];
char * reszta = (char*) malloc(sizeof(char) * (strlen(do_podzielenia) - 5 + 1)); // wyliczamy ile jeszcze zostało znaków i alokujemy tyle pamięci ile potrzeba

memcpy(pierwsze_5, do_podzielenia, 5); // kopiujemy pierwsze pięć znaków
pierwsze_5[5] = 0x00; // dodajemy znak końca ciągu znaków
memcpy(reszta, do_podzielenia + 5, strlen(do_podzielenia) - 5 + 1); // kopiujemy reszte

// tu operacje na pierwsze_5 i reszta

free(reszta); // zwalniamy pamięć
ODPOWIEDZ

Strony partnerskie: