我試圖從一個字符串中去除的數據,這樣的事情:你如何忽略sscanf中的已知單詞?
char * fromSocket = "GET /test.html HTTP 1.0\n""Host: www.example.com\n""Client: 127.0.0.1:60000\n";
在那裏我知道,在這種情況下,「HTTP 1.0」「主持人:」和「客戶端」和之間的分號客戶IP和端口將永遠在那裏。我試圖使用的sscanf()這樣的:
sscanf(conString, "%s %s HTTP 1.0 Host: %s Client: %s:%s", com, loc, hos, cli, port);
但是當我測試使用此輸出:
printf("%s %s %s %s %s\n", com, loc, hos, cli, port);
我收到了一堆空值。我如何忽略我知道存在的特定單詞?我在網上查看了一些頁面,但我認爲1.0會拋出掃描儀或其他任何東西。謝謝!
你似乎缺少'[\ r] \ N'和'HTTP/1.0'斜線。使用HTTP解析器! – Ryan 2014-12-03 21:45:42
爲什麼在數據處於fromSocket時查看conString? – user3629249 2014-12-04 01:26:40
進行測試,請務必檢查scanf函數的返回值以確定有多少次轉換成功。我建議先從格式字符串開始獲取第一個'%s',然後從那裏開始工作,直到找到問題。 – user3629249 2014-12-04 01:55:26