编程实现:统计特定单词在文章中出现次数与首次位置(附代码及详细解释)
```cpp #include <iostream> #include <sstream> #include <string> #include <cctype> #include <vector> // 将字符串转换为小写 std::string toLowerCase(const std::string& str) { std::string result = str; for (char& c : result) { c = std::tolower(c); } return result; } int main() { std::string target; std::getline(std::cin, target); target = toLowerCase(target); std::string article; std::getline(std::cin, article); std::stringstream ss(article); std::vector<std::string> words; std::string word; while (ss >> word) { words.push_back(word); } int count = 0; int firstPos = -1; int currentPos = 0; for (size_t i = 0; i < words.size(); ++i) { std::string lowerWord = toLowerCase(words[i]); if (lowerWord == target) { if (count == 0) { for (size_t j = 0; j < i; ++j) { currentPos += words[j].length() + 1; } firstPos = currentPos; } ++count; } } if (count > 0) { std::cout << count << " " << firstPos << std::endl; } else { std::cout << -1 << std::endl; } return 0; } ``` 代码解释 1. toLowerCase函数:该函数用于将输入的字符串转换为小写形式,通过遍历字符串中的每个字符,使用`std::tolower`函数将字符转换为小写。 2. 主函数: - 首先使用`std::getline`读取目标单词,并将其转换为小写。 - 接着读取文章字符串,并使用`std::stringstream`将文章按空格分割成单词,存储在`std::vector`中。 - 然后遍历存储单词的向量,将每个单词转换为小写并与目标单词比较。 - 如果找到匹配的单词,若这是第一次匹配,则计算该单词在文章中的起始位置。 - 最后根据匹配情况输出结果,若有匹配则输出匹配次数和首次出现位置,否则输出 -1。 ######[AI问答 | 570点数解答 | 2025-12-15 17:26:33]
- 数轴旅行:从原点出发,能否到达目标位置?(字节豆包 | 225点数解答 | 2026-01-23 19:51:03)48
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)349
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)246
- Python代码实现:绘制洁白无瑕水晶玫瑰,附示例代码与注意事项(字节豆包 | 447点数解答 | 2025-11-02 14:37:54)69
- Python 与 C 语言:一行字符串中单词个数统计的实现与解析(字节豆包 | 658点数解答 | 2025-12-07 17:39:44)38
- Python 实现输入字符串统计单词个数,轻松解决连续空格难题!(DeepSeek | 141点数解答 | 2025-12-14 20:12:06)49
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)271
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)265
- 求解 1 至 n 内第 k 大孤独数:质数与余数的巧妙探寻(字节豆包 | 298点数解答 | 2025-11-10 20:01:57)159
- 巧判小朋友同桌意愿:满足需求还是无解难题?(字节豆包 | 599点数解答 | 2025-11-16 20:06:12)71
- 巧用代码判断:能否让 2n 个小朋友都拥有满意同桌?(字节豆包 | 445点数解答 | 2025-11-16 20:07:02)82
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)319