Run ID:113970

提交时间:2025-03-18 13:28:16

#include<iostream> #include<cstring> using namespace std; string s_a, s_w, s_t;//s_a:整篇文章 s_w:要查找的单词 s_t:临时截取出的单词 string lower(string s)//将s转中大写为小写 { for(int i = 0; i < s.length(); ++i) if(s[i] >= 'A' && s[i] <= 'Z') s[i] += 32; return s; } int main() { int k = 0, firstPos = -1, ct = 0, b;//b:单词起始位置 cin >> s_w; cin.get();//吸收一个换行符 getline(cin, s_a);//读入整篇文章到arti s_w = lower(s_w);//把输入的单词及文章都转为小写 s_a = lower(s_a); b = 0; for(int i = 0; i <= s_a.length(); ++i)//遍历到'\0' { if(s_a[i] == ' ' || s_a[i] == '\0')//如果完成读取一个单词 { s_t = s_a.substr(b, i - b);//从b开始,截取出长为i-b的字符串 if(s_t == s_w)//如果截取出的字符串与要查找的字符串相同 { if(firstPos == -1) firstPos = b; ct++; } b = i + 1;//空格下一个位置为下一个单词的起始位置 } } if(firstPos == -1)//如果不存在要查找的单词 cout << -1; else//如果存在 cout << ct << ' ' << firstPos; return 0; }