Hozzászólások
Üdv
"TIP: 2005/11/07 13:59,00:00:00,000,1162,Z,123456,98765,asdfg,,,1,,"
A fenti stringet szeretném felbontani a ',' mentén
a sscanf el próbáltam de nem veszi figyelembe a vesszőket
sscanf ( str, "TIP:%s %s,%s,%s",a1,a2,a3,a4);
if (debug||foreground) printf("Split utan::>%s::: %s::: %s::::%s\n",a1,a2,a3,a4);
a fenti kód ezt adja vissza
Split utan::>2005/11/07::: 13:59,00:00:00,000,1162,Z,123456,98765,asdfg,,1,,:::::::
Mit csinálok rosszul?
Üdv Robit
[/i]
- A hozzászóláshoz be kell jelentkezni
Én strtok()-kal szeletelném föl.
- A hozzászóláshoz be kell jelentkezni
Feltétlenül beépített függvényt kell használnod a feladat megoldásához, mert néha a legegyszerübb ha az ember kézimunkához folyamodik.
[code:1:7f8d776521]#include <stdio.h>
#define VOLT 1
#define NEMVOLT 0
int main(int argc,char* argv[])
{
char* str="TIP: 2005/11/07 13:59,00:00:00,000,1162,Z,123456,98765,asdfg,,,1,,";
int vesszo = NEMVOLT;
int i=0;
while(str[i] != '\0')
{
if(str[i] == ',')
{
vesszo = VOLT;
i++;
continue;
}
printf(vesszo ? "\n%c" : "%c",str[i]);
i++;
vesszo = NEMVOLT;
}
return 0;
}[/code:1:7f8d776521]
Futási eredmény:
[code:1:7f8d776521]TIP: 2005/11/07 13:59
00:00:00
000
1162
Z
123456
98765
asdfg
1[/code:1:7f8d776521]
- A hozzászóláshoz be kell jelentkezni
[quote:b34d39eef4="meditor"]Én strtok()-kal szeletelném föl.
Szia!
ezzel próbáltam elősször de az volt a gond hogy ha két ',' között nincs semmi akkor elcsúsztak az értékek
pl
a1,a2,,a4 ha ezt egy tömbbe pakoltam akkor
arr[1]=>a1
arr[2]=>a2
arr[3]=>a4
arr[4]=>
lett
ezért próbálkoztam a sscanf el.
ha tudsz írni egy müködő példát strok() ra megköszönöm
de erőssen érdekel mindemellet hogy mért nem megy a sscanf
Üdv
Robit
- A hozzászóláshoz be kell jelentkezni
Az ember azt várná, hogy ha 2 delimiter van egymás után, akkor
null pointerrel tér vissza. (Bevallom a példádhoz hasonló kísérletet még
nem végeztem.)
- A hozzászóláshoz be kell jelentkezni
strsep(3)-pel is megnézhetnéd. a man-ja értelmében "azért hozták létre, mert az strtok(3) funkció nem volt képes az üres mezők kezelésére".
hajrá.
- A hozzászóláshoz be kell jelentkezni