苹果的产品在哪儿都是稀罕货。官方网站刚亮出“有现货”的招牌,不到半天就被黄牛们抢购一空。“有现货”(In Stock)这几个字眼犹如昙花一现,更多时候显示的都是“调货途中”。
为了在这场惨烈的抢购战中占据先机,我需要你的帮助。我希望你开发一个程序来分析苹果的网页内容,一旦发现有现货的产品,就把产品名字输入给我。不管是 iPhone、iPad 还是其他,我都会不惜代价地去购买!当然,收成的 20% 会作为你的酬劳。
Input:如果你会做网页的话,就知道下面的输入都一堆 HTML 代码。
每一件产品的介绍包括 5 行。
每一行的长度不超过 128 个字符。
产品的名字总是在第一行,并且包含在 H3 标签里。
后面 4 行都包含在 LI 标签里,并且产品的状态可能出现在任意一行。
产品的状态要么是“In Stock”(有现货),要么是“Ships”(调货途中)。
输出所有状态为“In Stock”的产品的名字。
每个名字输出一行。
$1996 or 12 month special financing optionsShips: 1-2 weeksFree ShippingiPad 2 16GB with Wi-Fi - Black 9.006 or 12 month special financing optionsIn StockFree Shipping # Sample Output: iPad 2 16GB with Wi-Fi - Black
#include
#include "string"
using namespace std;
/**
* kkmd66
* @return
*/
int main() {
//每行数据
string str;
//产品名字
string name;
//是否有售
bool flag;
//依次读入
while (getline(cin, str) && str != "") {
//如果是第一行,找出名字
if (str[1] == 'h') {
name = "";
flag = false;
for (int i = 0; i < str.size(); ++i) {
if (str[i] == '>') {
while (str[i] != '<') {
name += str[i];
i++;
}
break;
}
}
name.erase(0, 1);
}
//依次找出是否有售
if (str[1] == 'l') {
for (int i = 0; i < str.size(); ++i) {
if (str[i] == 'S' && str[i + 1] == 'h' && str[i + 2] == 'i' && str[i + 3] == 'p' && str[i + 4] == 's') {
flag = false;
break;
}
if (str[i] == 'I' && str[i + 1] == 'n' && str[i + 2] == ' ' && str[i + 3] == 'S' && str[i + 4] == 't' &&
str[i + 5] == 'o' && str[i + 6] == 'c' && str[i + 7] == 'k') {
flag = true;
break;
}
}
}
//输出
if (flag) {
cout << name << endl;
flag = false;
}
}
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)