Szerző Téma: Sscanf segítség  (Megtekintve 532 alkalommal)

Sscanf segítség
« Dátum: 2013. Szeptember 07. - 19:05:52 »
0 Show voters
Sziasztok!
Segítséget szeretnék kérni.
Van egy ilyen karakterláncom: \"Keresztnév_Vezetéknév - 09090\"
Ezt sscanf segítségével szeretném szétdarabolni egy sztringre(név) és egy változóra(telefonszám).
Ezzel próbálkoztam:
 
sscanf(inputtext, \"p<->s[24]{s[1]}i\", tnev, tszam);

 
Illetve {s[1]} nélkül. Az a problémám, hogy a \"-\" elõtt van egy space amit szeretnék eltüntetni. Erre úgy tudtam, hogy az sscanf quiet megoldása lenne a jó, de ilyenkor olyan hibát dob, hogy string buffer overflow. Ez ugye azt jelentené, hogy nem fér bele a sztring abba amibe menteni szeretném, viszont én pont, hogy nem akarom menteni.
Köszi a segítséget!

Sscanf segítség
« Válasz #1 Dátum: 2013. Szeptember 07. - 19:23:23 »
+1 Show voters
stock
StripNewLineY(str[]) //ysi_misc.own
{
new
l = strlen(str);
while (l-- && str[l] <= \' \') str[l] = \'\\0\';
}

 

   new
tnev[24],
tszam;
sscanf(\"Keresztnév_Vezetéknév - 09090\", \"p<->s[24]i\", tnev, tszam);
StripNewLineY(tnev);
printf(\"%s|%d\", tnev, tszam);

Sscanf segítség
« Válasz #2 Dátum: 2013. Szeptember 07. - 19:29:30 »
0 Show voters
Idézetet írta: ɐʞzssǝlosz date=1378574603\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"42462\" data-ipsquote-contentclass=\"forums_Topic

stock
StripNewLineY(str[]) //ysi_misc.own
{
new
l = strlen(str);
while (l-- && str[l] <= \' \') str[l] = \'\\0\';
}

 

   new
tnev[24],
tszam;
sscanf(\"Keresztnév_Vezetéknév - 09090\", \"p<->s[24]i\", tnev, tszam);
StripNewLineY(tnev);
printf(\"%s|%d\", tnev, tszam);

 

Köszi zsolesszka, rád mindig lehet számítani :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal