字符串和循环

时间:2017-02-23 09:22:07

标签: c++

前提:我是C和C ++的新手,这就是我需要你帮助的原因。

大家好,我在C ++上有字符串和循环问题(我很缺乏经验):

我想创建一个简单的登录屏幕,我用用户名,密码等制作了一个结构,我决定用户名必须是&gt; 3个字符和<15个字符,但我不知道怎么做,让我解释一下:

    #include <iostream>
    #include <cstdlib>

    using namespace std;

    struct login{
        string userID;
        string userPSW;
        string userMAIL;
        char userGENDER;
    }login1;

        cout << "Username: ";
        cin >> login1.userID;

我创建了一个if / else,while和for,但是当我尝试将字符串与int进行比较时(例如: login1.userID&lt; 15 ),有一个错误,我找到了一些解决方案(比如将字符串转换为int)但我的代码不起作用。 那么,有人可以帮我解决这个问题吗?

另一个问题是在循环时,我尝试使用 char userID ,但该循环继续发送垃圾邮件 cout&lt;&lt; “错误”我做了,这不是我想要的,如果字符&lt; 3 &gt; 15 ,我想要一个错误的循环并且循环必须返回“用户名:”,使用此方法,人们可以重试插入用户名。

我不会说/写英语很好,但我试图理解。 提前谢谢你们。

STRING问题与您的帮助固定! 循环问题仍未解决:(

2 个答案:

答案 0 :(得分:1)

您无法将std::string与数字进行比较。如果要比较字符串的长度,请使用.length()

cout << "Username: ";
cin >> login1.userID;

if(login1.userID.length() > 15)
{
   cout << "please chose a shorter name." << endl;

答案 1 :(得分:0)

您无法将stringint进行比较。如果要比较字符串的长度,则可以使用length()方法。它将返回字符串中可以比较的字符数。

喜欢

string barString = "hello"

if(barString.length() > 15)
    cout<< "string longer than 15 chars";