70分,后面三个测试T
查看原帖
70分,后面三个测试T
631470
wangdong_1楼主2023/11/6 13:41
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string toL(string s) {//全部转小写的函数
	transform(s.begin(), s.end(), s.begin(), ::tolower);
	return s;
}
int main() {
	string s; cin >> s;
	s = toL(s);//要查找的单词变小写
	string s1;
	cin.get();//吸收空格
	getline(cin, s1);//读取一行
	s1 = toL(s1);//全部转小写
	int ans = -1;//记录出现次数
	//按空格分割字符串
	string split = " ";
	s1 += split;
	int pos = s1.find(split);
	int step = split.size();
	int first = 0;
	int x = first;//记录第一次出现的位置
	int flag = 0;
	while (pos != s1.npos) {
		string temp = s1.substr(0, pos);//分割出每一个单词
		if (s == temp) {
			if (flag == 0) {//记录第一次出现的位置
				x = first;
				flag = 1;
			}
			ans++; //次数+1
		}
		else first += temp.size()+1;
		s1 = s1.substr(pos + step);
		pos = s1.find(split);
	}
	if (ans != -1) { //因为从-1开始,所以最后再+1
		ans++; 
		cout << ans << " " << x;
	}
	else {
		cout << ans ;
	}
	
	return 0;
}
2023/11/6 13:41
加载中...