D:\ZBY\evaluation\EvaluationSystemQt-master\translitter.cpp:10: error: no matching function for call to 'QStringList::filter(QCharRef)' if(russian_upper.filter(line[i]).size() != 0 || russian_lower.filter(line[i]).size() != 0){ ^ 如何修改?
时间: 2023-11-22 19:52:05 浏览: 63
leetcode答案-zby-leetcode-python:zby的Python版答案
这个错误信息表示在第10行中,`QStringList` 类中没有名为 `filter(QCharRef)` 的成员函数。可能是因为您想要使用 `QStringList` 中的 `filter()` 函数来过滤字符串列表中的元素,但是您传递给该函数的参数类型不正确。
如果您想要过滤一个字符串中的某个字符,您可以使用 `QString` 类中的 `count()` 函数来计算该字符在字符串中出现的次数。
例如,将下面的代码:
```cpp
if(russian_upper.filter(line[i]).size() != 0 || russian_lower.filter(line[i]).size() != 0){
```
改为:
```cpp
if(line.count(QLatin1Char('А')) != 0 || line.count(QLatin1Char('а')) != 0){
```
其中 `QLatin1Char` 是 Qt 提供的一个类,用于表示一个 Latin-1 字符。这样就可以统计字符串 `line` 中的大写字母 `А` 和小写字母 `а` 的个数了。
阅读全文