gpt4 book ai didi

c++ - Strtok 和忽略用户名的能力?

转载 作者:行者123 更新时间:2023-11-30 05:04:24 24 4
gpt4 key购买 nike

所以我目前正在做一个项目,我们需要按单词解析句子(更具体地说是推文)并将单词的频率和单词本身存储在 vector 对中(使用自定义查找函数来增加频率)。

我目前正在使用 strtok 来解​​析句子,我想知道您是否可以忽略任何开头带有符号 @ 的单词。我目前将 strtok 函数的定界符作为一堆无用的符号和空格 !@#&()–[{}]:;',?/*\".+\\^它正确地忽略了它们,但是说我有一个词:@thisismyusername,有没有办法忽略整个词,包括 'thisismyusername' 而不仅仅是 @?

我一直在寻找有关此类内容的文档,但尚未找到任何内容。

这是我的 strtok 解析代码:

char* tempMap;
tempMap = strtok (tempHolderPos," !@#&()–[{}]:;',?/*\".+\\^");

*tempHolderPos 是完整的句子。

谢谢大家!

最佳答案

你完全可以做到这一点。例如,类似下面的内容将适用于您的 strtok循环:

someloop {
ptr = strtok (NULL, yourdelims);
if (*ptr == '@')
continue;`
...
}

strtok 获得 token 后您只需检查第一个字符是否为 '@'如果是这样,此时就去获取下一个词——有效地忽略以 '@' 开头的词.

回想一下,当你取消引用一个字符指针时,你得到了字符本身。当调用 char * 时变量名(指针的起始地址),你得到第一个字符。因此,您只需取消引用指向 token 的指针并检查第一个字符是否为 '@'如果是,则获取下一个词,跳过将在 token 上完成的所有额外处理。

关于c++ - Strtok 和忽略用户名的能力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48918375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com