我正在编写一个程序,用户可以输入他们想要的任何字符串,除非他们在字符串之前输入一个整数,否则它将是有效的。 例如:
input: hi
output: hi is valid
input: 1hi
output: 1hi is invalid. It starts with a number
这是我到目前为止所得到的,但是如果我输入“hi”并且“1hi有效”,如果我输入1hi,它会继续打印“hi is valid”。
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
string input;
int main()
{
while (input != "quit")
{
cin >> input;
if (input == "1" + input)
cout << input << "in not valid. Reason: Started with a number.";
cout << input << " is valid.\n";
}
return 0;
}
感谢任何帮助。
答案已经解决。 使用isdigit作为解决问题的方法。
答案 0 :(得分:1)
那样的东西? :
if (input[0] >= 48 && input[0] <= 57) {
std::cout << input << " is not valid";
}
通过查看ASCII表,我认为这样可行。
编辑 - (input == "1" + input)
永远不会成真。
答案 1 :(得分:0)
您可以使用isdigit:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
string input;
int main()
{
while (input != "quit")
{
cin >> input;
if (isdigit(input.at(0)))
cout << input << "in not valid. Reason: Started with a number.";
else
cout << input << " is valid.\n";
}
return 0;
}