我正在编写一个应用程序,它将.txt文件转换为用于文本挖掘的文字袋。但是,即使我的应用程序过滤非字母字符,我仍然会收到非字母字符(如¾和=):
我的向量通过一个循环,该循环擦除以一个除[65,90]之外的ASCII值(从A到Z)的char开头的字符串。这些字符也通过了 isalpha 测试。似乎这些字符无法与字母字符区分开来。
我看不出如何从我的字符串向量中动态删除这些奇怪的字符串。我需要帮助。
我的代码,因为论坛帖子很长。
这部分代码无法摆脱以非字母字符开头的字符串:
for (unsigned int i=0; i<token24.size();i++){
string temp = token24[i];
char c = temp[0];
if(c>90||c<65){
token24.erase(token24.begin()+i);
i--;
}
}
我也试过了条件
(c>'Z'||c<'A')
答案 0 :(得分:0)
你总是可以用空格替换字符串,但这只是处理特定字符的特定情况,而不是更大的问题。
在我们看到代码之前,我认为我们无法为您做任何事情。
答案 1 :(得分:0)
像你这样的程序中最重要的部分是处理.txt文件的内容。这样的文件可以是Unicode文本,例如,可以使用UTF-8对其进行编码。然后,单字节只能是字符的一部分,而不是字符本身。您确定以正确的方式加载(并可能解码)文件吗?
另外,你不认为低位字母也是有效的字母字符吗?