Strtok 和忽略用户名的能力?
Strtok and ability to ignore usernames?
所以我目前正在做一个项目,我们需要按单词解析句子(更具体地说是推文)并将单词的频率和单词本身存储在向量对中(使用自定义查找函数来增加频率) .
我目前正在使用 strtok 来解析句子,我想知道您是否可以忽略任何开头带有符号 @
的单词。我目前将 strtok 函数的定界符作为一堆无用的符号和空格 !@#&()–[{}]:;',?/*\".+\^
并且它正确地忽略了它们,但是说我有一个词:@thisismyusername
,有没有办法忽略整个单词,包括 'thisismyusername'
而不仅仅是 @
?
我一直在寻找有关此类内容的文档,但尚未找到任何内容。
这是我的 strtok 解析代码:
char* tempMap;
tempMap = strtok (tempHolderPos," !@#&()–[{}]:;',?/*\".+\^");
*tempHolderPos
是完整的句子。
谢谢大家!
查看 strtok
参考资料,我认为您不能 直接 那样做。尽管忽略任何以 @
开头的标记并继续而不保存它会很容易。
你完全可以做到。例如,下面的内容将适用于您的 strtok
循环:
someloop {
ptr = strtok (NULL, yourdelims);
if (*ptr == '@')
continue;`
...
}
从 strtok
获得标记后,您只需检查第一个字符是否为 '@'
,如果是,此时获取下一个单词——有效地忽略以 [ 开头的单词=13=]。
回想一下,当你取消引用一个字符指针时,你得到了字符本身。当调用 char *
变量名(指针的起始地址)时,您将获得第一个字符。因此,您只需取消对令牌的指针的引用并检查第一个字符是否为 '@'
,如果是,则获取下一个单词,跳过将在令牌上完成的所有其他处理。
所以我目前正在做一个项目,我们需要按单词解析句子(更具体地说是推文)并将单词的频率和单词本身存储在向量对中(使用自定义查找函数来增加频率) .
我目前正在使用 strtok 来解析句子,我想知道您是否可以忽略任何开头带有符号 @
的单词。我目前将 strtok 函数的定界符作为一堆无用的符号和空格 !@#&()–[{}]:;',?/*\".+\^
并且它正确地忽略了它们,但是说我有一个词:@thisismyusername
,有没有办法忽略整个单词,包括 'thisismyusername'
而不仅仅是 @
?
我一直在寻找有关此类内容的文档,但尚未找到任何内容。
这是我的 strtok 解析代码:
char* tempMap;
tempMap = strtok (tempHolderPos," !@#&()–[{}]:;',?/*\".+\^");
*tempHolderPos
是完整的句子。
谢谢大家!
查看 strtok
参考资料,我认为您不能 直接 那样做。尽管忽略任何以 @
开头的标记并继续而不保存它会很容易。
你完全可以做到。例如,下面的内容将适用于您的 strtok
循环:
someloop {
ptr = strtok (NULL, yourdelims);
if (*ptr == '@')
continue;`
...
}
从 strtok
获得标记后,您只需检查第一个字符是否为 '@'
,如果是,此时获取下一个单词——有效地忽略以 [ 开头的单词=13=]。
回想一下,当你取消引用一个字符指针时,你得到了字符本身。当调用 char *
变量名(指针的起始地址)时,您将获得第一个字符。因此,您只需取消对令牌的指针的引用并检查第一个字符是否为 '@'
,如果是,则获取下一个单词,跳过将在令牌上完成的所有其他处理。