这是我的代码,我得到的错误与#39;运营商< ='在' i< = slovo' 它是一个程序,将每行中的单词从大写字母转换为小写...
你能帮忙吗?感谢#include <iostream>
using namespace std;
int main ()
{
const int max = 100;
string slovo;
int pocet_r;
cout << "Zadaj pocet uloh:" << endl;
cin >> pocet_r;
if(pocet_r >= 1 && pocet_r <=100)
{
// funkcia na zabezpecenie minimalneho poctu chars
for (int i = 0; i <pocet_r; i++)
{
cout << "Uloha " << i+1 << ":" << endl;
cin >> slovo;
if(slovo.size() > max)
{
cout << "slovo musi mat minimalne 1 a maximalne 100 znakov" << endl;
}
while( slovo.size() > max)
{
cin >> slovo;
}
}
for (int i=0; i <= slovo; i++)
{
while (slovo[i] >= 'A' && slovo[i] <= 'Z')
{
slovo[i] = tolower(slovo[i]);
}
}
}else{
cout << "Minimalne 1 a maximalne 100 uloh" << endl;
}
system("pause");
}
答案 0 :(得分:2)
i <= slovo
尝试将整数与字符串进行比较。凭借我们强大的人脑,我们知道42
实际上比"This string"
大,但编译器并不那么聪明,所以它只是不允许你将整数与字符串进行比较。
您的意思是将i
与字符串的长度进行比较(例如.length()
还是.size()
)?
for (int i=0; i <= slovo.size(); i++)
// |
// You probably want < here though, not <=
答案 1 :(得分:2)
slovo
是一个字符串,因此i <= slovo
没有意义。
您的意思是说i <= slovo.length()
吗?
答案 2 :(得分:0)
我认为您必须使用i <= slove.size()
而不是i <= slove()
。