【发布时间】:2022-01-18 15:43:16
【问题描述】:
我将消息保存在字符串中,我需要创建过滤函数来在这些消息中查找用户指定的单词。我已将每条消息按'\n' 拆分,因此一个聊天的示例是:
user1:Hey, man\nuser2:Hey\nuser1:What's up?\nuser2:Nothing, wbu?\n 等
现在用户可以要求搜索单词up,我已经实现了这样的搜索:
for (auto it = msg.cbegin(); (it = std::find(it, msg.cend(), str)) != msg.cend(); it++)
我可以将该字符串放入字符串流中并使用getline 到\n,但是如何返回到以前的\n 以便获得完整消息?另外,第一条消息怎么办,因为它不是以\n开头的?
【问题讨论】:
-
嗯...我想说是时候离开键盘,想知道你想对这些消息做什么。从概念上讲,您有一系列消息。您应该考虑一下每条消息应具有的属性以及您希望对其实现的操作。从那时起,您可以设计类并将您的 looong 字符串转换为这些类实例的列表或向量。与围绕简单字符串的非常聪明的意大利面条代码相比,这可能更清洁、更易于维护。