'i< = slovo'中的'operator< ='不匹配

时间:2014-02-02 13:18:03

标签: c++

这是我的代码,我得到的错误与#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");
}

3 个答案:

答案 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()