您好我最近從我的編程類昨天學習過文件I/O,並且有這個練習,我們需要從html文件中提取字符串並將其保存在結構中。C從html文件中提取標籤之間的字符串
我創建了一個函數來獲取字符串「Hello World」,但我的問題是我似乎無法獲得第3個和第4個Hello world世界。如果任何人都可以向我解釋爲什麼我的代碼無法檢測到第3次和第4次出現。
這裏是我的代碼
void get_name (char *line, FILE * fPointer, struct Results items)
{
char *p1;
char *p2;
char temp[100] = { 0 };
int i = 0;
while (fgets (line, 268, fPointer) != NULL) { //String//
p1 = strstr (line, "<span class=\"title\">");
if (p1 == NULL) {
printf ("Error p1\n");
}
else {
printf ("word found\n");
p2 = strstr (p1, "</span>");
if (p2 == NULL) {
printf ("Error P2\n");
}
else {
strncpy (temp, p1 + strlen ("<span class=\"title\">"),
p2 - p1 - strlen ("<span class=\"title\">"));
strncpy (items[i].item_name, temp,
sizeof (temp)/sizeof (temp[0]));
printf ("Success!\n");
i++;
}
}
}
}
編輯:文本
<span class="title"> Hello world1 </span>
<span class="title">Hello world2</span>
<span class="title"> Hello world3
</span>
<span class="title">
Hello world4
</span>
當您的程序無法正常工作時,您希望正確的做法是首先嚐試自己調試它。通過使用調試器。你做到了嗎?你發現了什麼? – kaylum
很難區分換行符來自記事本內容的屏幕截圖。(當使用'fgets'時會大大影響你對內容的搜索)請發佈實際文本(每行以'4-spaces'開頭,因此格式正確)。在某些情況下,「」'甚至不會與'Hello World'在同一行(可能,只是無法說明) –
「尋求調試幫助的問題(」爲什麼這個代碼不能工作?「)必須包含所需的行爲,特定的問題或錯誤,以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者沒有用處。 **如何創建一個最小化,完整和可驗證的示例**](http://stackoverflow.com/help/mcve)。「 –