下面的C代碼,C:爲什麼「sscanf」不會剪切結尾字符?
#include <stdio.h>
int main()
{
char *source="{\"address\":\"10.10.2.130\"}";
char ip[32];
sscanf(source, "{\"address\":\"%s\"}", ip);
printf("%s\n%s\n", source, ip);
return 0;
}
我希望提取IP 10.10.2.130,但輸出顯示10.10.2.130" },爲什麼呢?
感謝。
因爲'%s'格式意味着要讀取,直到它到達空白或字符串的末尾。 – Barmar
如果您想要進行模式匹配,請使用正則表達式庫。 – Barmar
我想你誤解了'sscanf'完全可以工作。它不會嘗試將輸入與您指定的模板進行匹配。 –