【发布时间】:2019-04-09 10:13:11
【问题描述】:
一个函数,它接受一个字符串作为输入,如果该字符串只包含 罗马数字,否则为假。回想一下,罗马数字是 M、D、C、L、 X、V 和 I。
这就是我目前所拥有的
bool isRoman(string str, char key)
{
assert(str.length() > 0)
if(length[i] == key)
{
return i;
}
}
【问题讨论】:
-
什么是
i?key是什么? -
至少你已经开始了。这里看起来有一些错误,即使用了未定义的变量
i,而不是函数的所有控制路径都返回值。你有问题吗? -
您的标题显示“对字符串进行排序”。但是你的描述没有提到排序。
-
assert() 只会在调试模式下被捕获...发布不会命中那个。我建议做类似 if(str.empty()) { return false; } 然后继续...
-
@JE3 如果该字符串仅包含罗马数字则为真 -- 您确定您阅读的描述正确吗?这是一个字符串——“LLLLLL”——是罗马数字吗?或者这里是另一个字符串——“XX II”——包含罗马数字,其中两个。因此,您需要进一步澄清一下这个作业应该做什么。