Ich habe eine Datei wie dieseSplit eine Zeichenfolge, die ich aus einer Datei lesen
GET /index.html k
GET /docencia.html k
GET /ejemplo.html k
und ich möchte es Zeile für Zeile lesen und teilen Sie es mit diesem Begrenzer " "
, aber mir diesen Fehler geben: segmentation fault(core dumped)
und ich weiß nicht, was ich versuchen soll.
Dies ist mein Code:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
char ordenes[150];
char *orden[3];
char *token;
int tok;
FILE *fp;
fp = fopen(argv[1], "r");
if (fp == NULL) {
printf("File error");
exit(1);
}
while (feof(fp) == 0) {
fgets(ordenes, sizeof(ordenes), fp);
printf("%s \n", ordenes);
token = strtok(ordenes, " ");
tok = 0;
while (token != NULL) {
orden[tok] = strdup(token);
tok++;
token = strtok(NULL, " ");
}
printf("\n%s\n", orden[0]);
printf("\n%s\n", orden[1]);
printf("\n%s\n", orden[2]);
}
fclose(fp);
}
Der Fehler zeigt an, wenn ich die erste strdup
nennen. Wenn ich versuche, das Token zu drucken, nur nachdem ich das erste strtok
anrufe, scheitert es auch (das gleiche segmentation fault core dumped
), also denke ich, dass das Problem mit dem strtok
ist.
'token = strtok (NULL,“ „) ; 'zum Loop-Ende wechseln. oder 'if (Token) break;' nach 'token = strtok (NULL," ");'. – BLUEPIXY
setzen '#include'. –
BLUEPIXY
Okay, das Include war das Problem ... Der Compiler zeigte nichts, also dachte ich, mit der Std wäre gut. –