2017-01-25 2 views
0

Das Array options enthält Elemente dieser Form: "-option = Wert".Verwendung von fnmatch mit einem Zeichenzeiger

Das Argument needed_option enthält zum Beispiel „Option“

char *function(char *options[], char *needed_option){ 
    for(//go over all possible options){ 
     if(fnmatch("-???=*", options[i], 0) == 0){ //<--- look here 
      char *ret = extract_value_from_option(); 
      return ret; 
     } 
    } 

} 

Frage: Gibt es eine Möglichkeit, um genericly der „???“ mit der Funktion zu ersetzen - Argumente needed_option wie in printf() getan, um seine wo ein char * enthalten sein mit der %s?

Antwort

3

bereiten Sie es mit sprintf()

char current[256]; 
    sprintf(current, "-%s=*", needed_option); 
    //... 
    if(fnmatch(current, options[i], 0) == 0){ //... 
+0

groß, es angefordert wie führt, obwohl der Mann 3 sprintf ein Schmerz in den Arsch –

Verwandte Themen