-2
我正在制作一个程序,用于转换罗马数字并将它们转换为十进制值。我有一个头文件一直给我以下错误:使用“长度”在头文件的For循环中出错C867
错误C3867'std :: basic_string,std :: allocator> :: length':非标准语法;使用“&”创建一个指向成员RomanChar
其中“RomanChar是在Visual Studio项目的名称。出现此错误的for循环中,我创建由于”。长度”部分。
我试着寻找到解决问题的对策,往往问题会涉及加括号的成员或使用一种叫做gcroot这是我一直无法理解。
#include <iostream>
#include <string>
using namespace std;
class RomanClass { //Define class "RomanClass"
public:
void setValue(int x) {
Value = x;
}
int getValue() {
return Value;
}
void setValue(string s) {
for (int i = int(s.length) - 1; i >= 0; i--) {
if (s[i] == 'M' || 'm') {
Value += 1000;
}
else if (s[i] == 'D' || 'd') {
Value += 500;
}
else if (s[i] == 'C' || 'c') {
Value += 100;
}
else if (s[i] == 'L' || 'l') {
Value += 50;
}
else if (s[i] == 'X' || 'x') {
Value += 10;
}
else if (s[i] == 'V' || 'v') {
Value += 5;
}
else if (s[i] == 'I' || 'i') {
Value += 1;
}
}
}
private:
int Value = 0;
};