我要找來檢查,如果一個字符串如下功能(完全一致),對應format
串 像這樣由其他參數指定的數據的模式:是否存在某種'strcmpf'實現?
/* int strcmpf (char *str1, char *format, ...); */
char *test = "Hello World !"
if(!strcmpf(test, "%s%*s %c", "Hello ", '!')
return HELLO_HAS_BEEN_SAID;
else
return PROGRAM_ISNT_POLITE;
這個實現自己,我認爲將是非常困難,但是這種功能對於內容的語義分析非常有用。在我嘗試自己編寫這樣的函數之前,我需要知道是否已經有了一個庫或代碼片段來提供像這樣的函數的實現?
更具體地說,我需要模式匹配行爲。因此test
必須完全匹配由對應於format
參數的數據指定的模式。
實現這樣的功能非常簡單,只需使用['vsnprintf'](http://en.cppreference.com/w/c/io/vfprintf)進行格式化,然後調用'strcmp'。 –
@JoachimPileborg完全正確,但是如果我必須將它放在函數中,並且調用了'strcmp()',我仍然需要爲該函數提供可變參數。對於每個人來說,這不是「非常簡單」,你不同意嗎?至少對我來說似乎不實際.. – Malina
@JoachimPileborg:現在是什麼? 「世界」來自您提出的解決方案的地方在哪裏? –