前提:我是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问题与您的帮助固定! 循环问题仍未解决:(
答案 0 :(得分:1)
您无法将std::string
与数字进行比较。如果要比较字符串的长度,请使用.length()
:
cout << "Username: ";
cin >> login1.userID;
if(login1.userID.length() > 15)
{
cout << "please chose a shorter name." << endl;
答案 1 :(得分:0)
您无法将string
与int
进行比较。如果要比较字符串的长度,则可以使用length()
方法。它将返回字符串中可以比较的字符数。
喜欢
string barString = "hello"
if(barString.length() > 15)
cout<< "string longer than 15 chars";