Hallo ich habe ein Problem mit der Übergabe eines Stringarrays unter C:
Ich möchte an die Funktion split eine Zeichenkette übergeben, diese Splitten lassen und in ein Array so abspeichern, das ich danach Zugriff darauf habe.
Ich hoffe das war halbwegs verständlich.
Hier der Quellcode:
Schonmal vorab vielen Dank an ALLE
Ich möchte an die Funktion split eine Zeichenkette übergeben, diese Splitten lassen und in ein Array so abspeichern, das ich danach Zugriff darauf habe.
Ich hoffe das war halbwegs verständlich.
Hier der Quellcode:
Code:
#define MAX_ENTRY 500
#define MAX_COMMANDS 10
#define MAX_PARAM 19
#define END_OF_COMMAND ";"
#define END_OF_PARAM " "
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int split(char **tokens, char *entry, char *delemiter){
printf("blub");
char *token = NULL;
int current_token = 0;
token = strtok(entry,delemiter);
if(token != NULL){
*tokens[current_token] = (char *)malloc(strlen(token)* sizeof(char));
strcpy(*tokens[current_token],token);
current_token++;
while ( (token = strtok(NULL, delemiter)) ){
*tokens[current_token] = (char *)malloc(strlen(token)* sizeof(char));
strcpy(*tokens[current_token],token);
current_token++;
}
}
return current_token;
}
int main( int argc, const char** argv){
char entry[MAX_ENTRY];
char *commands[MAX_COMMANDS];
int iCommands = 0;
int i;
while(1){
printf(">");fgets(entry,MAX_ENTRY,stdin);
printf("Eingabe:%s",entry);
iCommands = split(&commands,entry,END_OF_COMMAND);
for(i = 0; i < iCommands; i++){
printf("command[%i]:%s\n",i,commands[i]);
}
}
}
Schonmal vorab vielen Dank an ALLE