Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
Autor | Správa |
---|
Registrovaný: 06.05.11 Prihlásený: 17.12.16 Príspevky: 97 Témy: 40 | 40 |
Čavte, potrebujem poradiť, mám string napr: dobry,den,ujo,gregor -potrebujem časti oddelené čiarkou rozdeliť do premenných pr1: dobry pr2: den pr3: ujo pr4: gregor -tou funkciou strtok() som vedel rozdeliť iba dva nejak mi to nejde diky za rady ![:)](https://www.pcforum.sk/images/smilies/smile02.gif)
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
Ukáž kód, nech pozrieme, kde je problém ![;)](https://www.pcforum.sk/images/smilies/smile03.gif)
_________________ C#, PHP, ... |
|
Registrovaný: 06.05.11 Prihlásený: 17.12.16 Príspevky: 97 Témy: 40 | 40 |
no kód som zmazal ![:D](https://www.pcforum.sk/images/smilies/smile01.gif) nevedel som to spraviť až pre 4 premenné, preto sa pýtam či niekto neporadí ako nato
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
Však práve tou funkciou, ktorú si skúšal, len bohvie čo si porobil, keď ti to nefungovalo...
_________________ C#, PHP, ... |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Keď spustíš presne kód z dokumentácie http://www.cplusplus.com/reference/cstring/strtok/len zmeníš delimiter na čiarku a máš to rozdelené. Blbosť je pchať to do premenných. Urob si pole reťazcov a jednoducho jednotlivé časti nasyp do neho.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 06.05.11 Prihlásený: 17.12.16 Príspevky: 97 Témy: 40 | 40 |
ako spraviť to pole reťazcov? stále neviem ako nato
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Mohlo by stačiť Kód: char * pole[4]; Do toho kódu zavedieš nejaké počítadlo, ktoré sa bude od nuly každým cyklom zvyšovať o jedna (trebárs int i = 0;) a v cykle potom urobíš len pole[i] = pch; Snáď to bude fungovať - ak nie, tak bude treba použiť ešte aj funkciu malloc a strcpy. Už som nejaký unavený na to, aby som si bol istý ![:D](https://www.pcforum.sk/images/smilies/smile01.gif) Idem spať.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 06.05.11 Prihlásený: 17.12.16 Príspevky: 97 Témy: 40 | 40 |
int i=0;
char str[] ="aa,bb,cc,dd"; char * pch; char * pole[4]; printf ("Splitting string \"%s\" into tokens:\n",str); pch = strtok (str,","); pole[i]=pch; while (pch != NULL) { i++; printf ("%s\n",pch); pch = strtok (NULL, ","); pole[i]=pch; } printf("%s", pole[0]);
-ten posledný printf - tam som skúšal či to ide, vypíše všetky okrem pole[0]- teda tam sa neuloží nič :/ -a ináč vysvetlí mi niekto prečo pri char * pole[4] musí byť smerník? veľmi im nechápem, ked som skúšal spraviť to pole reťazcov dával som char pole[4] a to mi nešlo, prečo to s tým smerníkom funguje?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Tak ako som sa dočítal, funkcia strtok používa statický buffer pre výsledky. To je problém, preto sa dáta strácajú. Bude preto treba používať strcpy. V tomto prípade, pre zjednodušenie od smerníkov, by to mohlo byť nejako takto: Kód: char str[] ="aa,bb,cc,dd"; int i = 0; char * pch; char pole[4][32]; // **1 printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str,","); strcpy( pole[i], pch ); // **2 while(1) { i++; pch = strtok (NULL, ","); if ( pch == NULL ) // ** 3 break;
strcpy( pole[i], pch ); } for (i = 0; i < 4; i++) printf( "pole[%d]: %s\n", i, pole[i] );
Na riadku **1 si teda vytvorím pole štyroch reťazcov o maximálnej dĺžke 32 znakov. Do nich budem neskôr kopírovať výsledky. Na riadku **2 používam funkciu strcpy, ktorá fyzicky skopíruje reťazec na iné miesto v pamäti - teda do môjho pola. Na riadku **3 kontrolujem NULL ešte pred kopírovaním, lebo nemôžem funkcií strcpy predať NULL ako parameter. Takto to teda funguje, ale si obmedzený len na max 32 znakov dlhé tokeny. To by sa potom riešilo cez dynamickú alokáciu. Prečítaj si toto, určite ti to trochu pomôže pochopenie-smernikov-v-jazyku-c-vt134003.html
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 14.03.11 Prihlásený: 04.07.24 Príspevky: 815 Témy: 23 | 23 Bydlisko: Bratislava | |
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Si si istý? getline je C++ a cez fscanf to urobí len ťažko ![;)](https://www.pcforum.sk/images/smilies/smile03.gif) (rovnako tak cez sscanf) A tie tvoje hnusné veci dole sú síce pekné, ale nič-nevraviace
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 14.03.11 Prihlásený: 04.07.24 Príspevky: 815 Témy: 23 | 23 Bydlisko: Bratislava |
Je lepšie mať jeden dobrý parser nezávislý od zdroja "vety". Teda, podľa mňa. Ja tie vety dostávam z mikrofónu. 8-)
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Je lepšie v prvom rade svojmu parseru aspoň trochu rozumieť ![;)](https://www.pcforum.sk/images/smilies/smile03.gif)
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v PHP, ASP | 8 | 688 | 30.01.2009 16:56 newboy1 | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v Ostatné programy | 0 | 366 | 15.11.2016 6:52 ferino5 | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v PHP, ASP | 1 | 425 | 02.12.2008 17:29 stenley | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v PHP, ASP | 4 | 872 | 01.08.2009 21:26 Tominator | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read_hot.gif) | v PHP, ASP | 25 | 849 | 17.10.2012 22:25 Lier | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v PHP, ASP | 7 | 644 | 17.09.2007 15:59 pitrik1 | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v PHP, ASP | 2 | 363 | 22.08.2012 9:56 Wor3d | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v Assembler, C, C++, Pascal, Java | 4 | 673 | 29.12.2008 17:12 1231dodo | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v JavaScript, VBScript, Ajax | 1 | 670 | 07.08.2008 19:08 neutronmind | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v JavaScript, VBScript, Ajax | 2 | 761 | 18.12.2009 0:07 camo | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v PHP, ASP | 6 | 565 | 27.08.2012 4:26 Ďuri | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v Assembler, C, C++, Pascal, Java | 0 | 433 | 16.05.2017 12:10 beastiq | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v PHP, ASP | 8 | 652 | 26.02.2011 14:20 1daemon1 | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read_hot.gif) | v PHP, ASP | 11 | 577 | 02.06.2014 12:37 DeiForm | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read.gif) | v PHP, ASP | 8 | 423 | 25.01.2008 22:24 Matho | ![V tomto fóre nie sú ďalšie neprečítané témy. V tomto fóre nie sú ďalšie neprečítané témy.](https://www.pcforum.sk/styles/white/imageset/topic_read_hot.gif) | v Assembler, C, C++, Pascal, Java | 9 | 1730 | 30.07.2008 23:58 ado21 |
|