У меня есть динамическая строка, например: "/users/5/10/fnvfnvdjvndfvjvdklchsh"
, а также динамический формат, например "/users/%u/%d/%s"
, как проверить соответствие этих строк?
Под строкой я имею в виду char[255]
или char* str = malloc(x)
.
Я пытался использовать sscanf
, но Я не знаю количество аргументов и типов , если я это сделаю:
int res = sscanf(input, format);
У меня переполнение стека, или я могу выделить стек, чтобы предотвратить это?
Пример как это:
void* buffer = malloc(1024);
int res = sscanf(input, format, buffer);
Я хотел бы иметь такую функцию:
bool stringMatches(const char* format, const char* input);
stringMatches("/users/%u/%d/%s", "/users/5/10/fnvfnvdjvndfvjvdklchsh"); //true
stringMatches("/users/%u/%d/%s", "/users/5/10"); //false
stringMatches("/users/%u/%d/%s", "/users/-10/10/aaa"); //false %u is unsigned
Видите ли вы какое-нибудь решение?
Заранее спасибо.