fork download
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3.  
  4. char *get_ini_value(char *input, char *var_name) {
  5.  
  6. // skip leading spaces
  7. while(*input == ' ' || *input == '\t') input++;
  8.  
  9. // find end of var name
  10. while(*input && *var_name) {
  11.  
  12. if (*input == ';' || *input == '[' || *input != *var_name) {
  13. return NULL;
  14. }
  15.  
  16. input++;
  17. var_name++;
  18. }
  19.  
  20. // skip spaces before equal char
  21. while(*input == ' ' || *input == '\t') input++;
  22.  
  23. // check equal char exists
  24. if (*input != '=') {
  25. return NULL;
  26. }
  27.  
  28. // skip equal char
  29. input++;
  30.  
  31. // skip spaces after equal char
  32. while(*input == ' ' || *input == '\t') input++;
  33.  
  34. // return result
  35. return input;
  36. }
  37.  
  38. int main(void) {
  39. char *tekst = " var1 = this-is-a-test";
  40. char *val_ptr;
  41. if ((val_ptr = get_ini_value(tekst, "var1")) != NULL) {
  42. printf("value: [%s]\n", val_ptr);
  43. }
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0s 5460KB
stdin
Standard input is empty
stdout
value: [this-is-a-test]