P1308 统计单词数
输入格式:
共222行。
第111行为一个字符串,其中只含字母,表示给定单词;
第222行为一个字符串,其中只可能包含字母和空格,表示给定的文章。
输出格式:
一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从000 开始);如果单词在文章中没有出现,则直接输出一个整数−1-1−1。
直接上代码:
#include<iostream> #include<string> using namespace std; int main() { int time = 0; string a, b; getline(cin, a); getline(cin, b); for (int i = 0; a[i]; i++) { if (a[i] >= 'a' && a[i] <= 'z') { int c = a[i]; c -= 32; a[i] = c; } } for (int i = 0; b[i]; i++) { if (b[i] >= 'a' && b[i <= 'z']) { int c = b[i]; c -= 32; b[i] = c; } } string tem; int f = -1; int x = 0; for (int i = 0; b[i]; i++) { if (b[i] == ' ') { if (tem == a) { time++; if (x == 0) { f = i - tem.length(); x++; } } tem = ""; } else { tem += b[i]; } } if (f != -1 && time != 0) { cout << time << " " << f; } else { cout << "-1"; } return 0; }