Comment utilisez-vous un tableau de chaînes en tant que paramètre dans C? Si je devais écrire une fonction avec la signature:string array in c
Devinez je ne me suis pas très bien expliqué ... Je posterai le code que j'essaye de mettre au travail.
int format_parameters(char* str) {
char local_str[201] = "";
int i = 0;
int j = 0;
int flip = 0;
while(str[i]) {
if((str[i] == '"') && (flip == 0)) flip = 1;//Sentence allowed
else if((str[i] == '"') && (flip == 1)) flip = 0;//Sentence not allowed
if(flip == 1) append_char(local_str, str[i]);
//check if space
else if(flip == 0) {
int c = str[i];
if(!isspace(c)) append_char(local_str, str[i]);
else {
if((strlen(local_str) > 0) && (j < 4)) {
//local-str copied to param[j] here
//printf("j = %d %s\n",j,local_str);
local_str[0] = '\0';
j++;
}
}
}
i++;
}
//Add \0 to param
return flip;
}//end format_parameters
void append_char(char* str, char c) {
int len = strlen(str);
str[len] = c;
str[len+1] = '\0';
}//end append_char
int main() {
char str[200];
//str filled with stuff...
int x = format_parameters(str);
}
Il devrait y avoir un deuxième (et troisième?) Paramètre dans la signature format_parameters
, un char* param[5]
qui doit être lisible à partir main
.
Vous devez connaître le nombre d'emplacements dans le tableau transmis en tant que 'param'; cela nécessite un argument supplémentaire à la fonction. –