我要当黄牛(C++) kkmd66

我要当黄牛(C++) kkmd66,第1张

Desclass="superseo">cription:

苹果的产品在哪儿都是稀罕货。官方网站刚亮出“有现货”的招牌,不到半天就被黄牛们抢购一空。“有现货”(In Stock)这几个字眼犹如昙花一现,更多时候显示的都是“调货途中”。

为了在这场惨烈的抢购战中占据先机,我需要你的帮助。我希望你开发一个程序来分析苹果的网页内容,一旦发现有现货的产品,就把产品名字输入给我。不管是 iPhone、iPad 还是其他,我都会不惜代价地去购买!当然,收成的 20% 会作为你的酬劳。

Input:

如果你会做网页的话,就知道下面的输入都一堆 HTML 代码。

每一件产品的介绍包括 5 行。
每一行的长度不超过 128 个字符。
产品的名字总是在第一行,并且包含在 H3 标签里。
后面 4 行都包含在 LI 标签里,并且产品的状态可能出现在任意一行。
产品的状态要么是“In Stock”(有现货),要么是“Ships”(调货途中)。

Output:

输出所有状态为“In Stock”的产品的名字。
每个名字输出一行。

Sample Input: iPhone 4S 16GB Black AT&T From
$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;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/993398.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存