建设银行广西分行招聘网站,北京活动策划网站,网推平台有哪些,微网站功能列表题目描述 小明是一野生动物园的管理人员#xff0c;他统计了一份野生动物的名单#xff0c;糟糕的是#xff0c;因为操作不当导致打乱了名单#xff0c;每种野生动物出现的次数都无法进行查询。 小明只能重新进行统计#xff0c;已知名单中的动物名称只由大小写字母构成他统计了一份野生动物的名单糟糕的是因为操作不当导致打乱了名单每种野生动物出现的次数都无法进行查询。 小明只能重新进行统计已知名单中的动物名称只由大小写字母构成不存在其他字符屋漏偏逢连夜雨小明的健盘输入也出现了问题输入的动物名称可能与名单中的名称大小写不一致所以只有当输入的名称与名单中的名称在都小写的情况下字母完全相同并且不是某个动物名称的一部分才说明是同一种野生动物小明想要知道K种野生动物在名单当中的所有位置以及出现次数。 输入描述 第一行为一个字符串只包含大小写以及空格表示动物名单。 第二行为一个整数K表示需要统计K种野生动物。 接下来K行每行为一个字符串只包含大小写字母表示野生动物名称。 输出描述 输出若干行如果出现过则输出2行第一行若干个数字表示野生动物在名单当中的所有位置只输出动物名称首字母在名单中的位置第二行一个数字表示该野生动物出现的次数如果没有出现过则输出-1。 考察点 string字符串 输入 geline()输入 正常输入 运用 字符串取长度 字符串拼接 字符串转小写 字符串查找 参考答案 #include iostream
#include string
using namespace std;int main()
{// 输入动物名单string animals;getline(cin, animals);int len_animals animals.length(); // 获取名单长度for (int i 0; i len_animals; i){animals[i] tolower(animals[i]); // 全部转小写}animals animals ; // 为了保证不是查询的动物不是某个动物的一部分头尾加空格// 输入统计动物数量int k;cin k;// 统计动物string find;for (int i 1; i k; i){cin find;int len_find find.length(); // 获取查询动物的长度for (int i 0; i len_find; i){find[i] tolower(find[i]); // 全部转小写}find find ; // 为了保证不是查询的动物不是某个动物的一部分头尾加空格// 开始统计int pos animals.find(find);if (pos string::npos) // 找不到查询动物{cout -1 endl;continue;}int cnt 0; // 统计的计数器while (pos ! string::npos) // 还有出现的想要查询的动物{cout pos ;pos animals.find(find, pos1);cnt;}cout cnt;}return 0;
} 运行效果