Hirdetés
- Milyen videókártyát?
- Milyen billentyűzetet vegyek?
- Bemutatta saját SSD-jét a Raspberry Pi
- Nem okoz az adattárolón hibát a Windows 11 augusztusi frissítése
- Azonnali notebookos kérdések órája
- Mégis mi értelme az Xbox PC-nek, ha limitálja a hardverválasztékot?
- Azonnali fotós kérdések órája
- Milyen monitort vegyek?
- Hamarosan foghatja a kezét a Copilot a játékosoknak
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
Aktív témák
-
Jester01
veterán
Az elsõ két problémára gyári megoldás az strtok függvény. Ha az nem tetszik, kézzel valami ilyesmi lehet:
char* nexttoken(const char** ptr, char delim)
{
char* ret = NULL;
if (*ptr && **ptr)
{
int length;
const char* start = *ptr;
const char* end = strchr(start, delim);
if (end == NULL)
{
length = strlen(start);
*ptr = NULL;
} else {
length = end - start;
*ptr = end + 1;
}
ret = malloc(length + 1);
strncpy(ret, start, length);
ret[length] = 0;
}
return ret;
}
Ha több delimiter van egymás után, akkor ez szépen üres stringeket fog visszaadni. A lista végén NULL-t kapsz, és minden visszaadott tokent neked kell free-vel felszabadítani (mint ahogy a 3. kérdésedben szereplõ strdup esetében is.)
Mivel hossz paramétert nem adsz át, ezért a bemeneti string végén ott kell legyen a lezáró nulla byte különben nagy baj lesz
Amúgy sokszor elég a token pozíciója és a hossza, ekkor megszabadulsz a memóriakezelés nyûgjétõl és gyorsabb is lesz.
Elismerem, hogy egy split az egyszerûbb
[Szerkesztve]
[Szerkesztve]
Aktív témák
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- Gamer PC-Számítógép! Csere-Beszámítás! I7 6700K / RTX 2060 6GB / 32GB DDR4 / 500 SSD
- Telefon felvásárlás!! Honor 400 Lite, Honor 400, Honor 400 Pro
- Apple iPhone 13 / 128GB / Gyárifüggetlen / 12Hó Garancia / 89% akku
- Telefon felváráslás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest