子串查找,水题
本题要点:
1、每一行读入,使用 getline ,然后每一次处理一行
用 string 的 substr 函数来匹配 这些单词。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
using namespace std;
string line;
void solve()
{
int len = line.size();
for(int i = 0; i <= len - 4; ++i)
{
if(line[i] == 'i')
{
if(i + 6 <= len && line.substr(i, 6) == "iPhone")
{
printf("MAI MAI MAI!\n");
}
if(line.substr(i, 4) == "iPod" || line.substr(i, 4) == "iPad")
{
printf("MAI MAI MAI!\n");
}
}else if(line[i] == 'A'){
if(i + 5 <= len && line.substr(i, 5) == "Apple")
{
printf("MAI MAI MAI!\n");
}
}else if(line[i] == 'S'){
if(line.substr(i, 4) == "Sony")
{
printf("SONY DAFA IS GOOD!\n");
}
}
}
}
int main()
{
while(getline(cin, line))
{
solve();
}
return 0;
}
/*
Apple bananaiPad lemon ApplepiSony
233
Tim cook is doubi from Apple
iPhoneipad
iPhone30 is so biiiiiiig Microsoft
makes good App.
*/
/*
MAI MAI MAI!
MAI MAI MAI!
MAI MAI MAI!
SONY DAFA IS GOOD!
MAI MAI MAI!
MAI MAI MAI!
MAI MAI MAI!
*/