Chyba v kodu - C [Vyreseno] Vyřešeno
Napsal: 04 led 2017 00:34
Dobrý den,
chtěl bych vás poprosit o pomoc. Muj kód by měl sloužit k rozparsování stringu do názvu složek. Takže když je například:
C/User/Games vloží do pole foldersName = {"C","User","Games"}, kód funguje správně až na vyjímku kdy, když vložím
"C/Hra/Halo 4/Map" tak za poslední slovo Map do pole přidá "C", takže následně pole má složky
foldersName = {"C","Hra","Halo 4","MapC"}, pokud však vložím například "C/Hra/Halo 4/Ma" nebo "C/Hra/Halo 4/Mapa" chyba už se nevyskytuje . Mohl by mi někdo prosím poradit, musí to být chyba přesně na tom 13. indexu kde končí "Map".Protože pokud "zkrátím" předchozí složky a počet ubraných písmenek přidám na konec slova chyba se vyskytne na stejném indexu jako v předchozím případě. Prosím o pomoc v C dělám druhým dnem a nevím si s tím rady. Děkuji všem
Kód
void cd(char* path){
/**slouzi k pocitani poctu slov
int count = 0;
int length = (int)strlen(path);
/**slouzi k for cyklum
int i = 0;
/**spocteny poctu slov
for(i;i<length;i++){
if(path[i]=='/')
count ++;
}
/**inicializace pole stringu
char foldersName[count][255];
/**pomocne pole pro rozparsovani
char str[strlen(path)];
strcpy(str,path);
char * pch;
pch = strtok (str,"/");
count =0;
while (pch != NULL)
{
strcpy(foldersName[count],pch);
pch = strtok (NULL, "/");
count ++;
}
printf("----------------Tokens-----------\n");
for(i =0;i<count;i++){
printf("%s \n",foldersName[i]);
}
chtěl bych vás poprosit o pomoc. Muj kód by měl sloužit k rozparsování stringu do názvu složek. Takže když je například:
C/User/Games vloží do pole foldersName = {"C","User","Games"}, kód funguje správně až na vyjímku kdy, když vložím
"C/Hra/Halo 4/Map" tak za poslední slovo Map do pole přidá "C", takže následně pole má složky
foldersName = {"C","Hra","Halo 4","MapC"}, pokud však vložím například "C/Hra/Halo 4/Ma" nebo "C/Hra/Halo 4/Mapa" chyba už se nevyskytuje . Mohl by mi někdo prosím poradit, musí to být chyba přesně na tom 13. indexu kde končí "Map".Protože pokud "zkrátím" předchozí složky a počet ubraných písmenek přidám na konec slova chyba se vyskytne na stejném indexu jako v předchozím případě. Prosím o pomoc v C dělám druhým dnem a nevím si s tím rady. Děkuji všem
Kód
void cd(char* path){
/**slouzi k pocitani poctu slov
int count = 0;
int length = (int)strlen(path);
/**slouzi k for cyklum
int i = 0;
/**spocteny poctu slov
for(i;i<length;i++){
if(path[i]=='/')
count ++;
}
/**inicializace pole stringu
char foldersName[count][255];
/**pomocne pole pro rozparsovani
char str[strlen(path)];
strcpy(str,path);
char * pch;
pch = strtok (str,"/");
count =0;
while (pch != NULL)
{
strcpy(foldersName[count],pch);
pch = strtok (NULL, "/");
count ++;
}
printf("----------------Tokens-----------\n");
for(i =0;i<count;i++){
printf("%s \n",foldersName[i]);
}