gpt4 book ai didi

C++;仅在匹配预设模式时接受用户输入

转载 作者:太空宇宙 更新时间:2023-11-04 12:56:02 24 4
gpt4 key购买 nike

大家好。

我是 C++ 的新手,只是想尝试一些小规模的东西来掌握基础知识。我想创建一个程序,它将从 cin 获取用户输入,并在且仅当它与预设模板匹配时打印出来,例如 LLL000(因此,3 个字母后跟 3 个数字)。想想像健身房成员(member)这样的事情,其中​​用户 ID 遵循 3 个字母和 3 个数字的格式。

这是我到目前为止想出的代码

//User ID checking
#include <iostream>
#include <string>
using std::string;


int main()
{
string letter;
int number;

std::cout << "Enter your ID: " << std::endl;
std::cin >> letter;
std::cin >> number;

if (letter.size() <= 0 && letter.size() > 3)
{
std::cout << "There must be 3 letters!" << std::endl;
return 1;
}
else if (number < 99 || number >= 1000)
{
std::cout << "The number has to be between 100 and 999";
return 1;
}
else
{
std::cout << "Your ID is " << letter << number;
return 0;
}
}

我的问题是:

  1. 第 15-25 行似乎没有按照我的预期执行。事实上,在我看来它在程序运行时完全忽略了这一行
  2. 如果第 21 行像我想的那样工作,它还会将像 005 这样的用户 ID 标记为无效。我不知道如何让它用 0 来填补那个空白。
  3. 代码实际上没有任何东西可以尝试与某种格式进行比较,因为我不知道该怎么做。

如果我只是没有看到这是非常简单的事情,我深表歉意,并感谢任何帮助!

我还想补充一点,我注意到字符串也可以接受数字,而不仅仅是字母作为输入,我不知道会发生这种情况。

最佳答案

要比较字符串或字符串的一部分,您需要使用 compare C++中STL字符串类的方法。这允许您将一个 std::string 与另一个进行比较,或将其与另一个的子字符串进行比较。

  std::string str1 ("blue fruit");
std::string str2 ("red fruit");

if (str1.compare(6,5,"fruit") == 0)
std::cout << "still, " << str1 << " is a fruit\n";

第一个参数是 size_t 位置,第二个参数是要比较的字符数。您也可以只输入一个参数,即另一个字符串,以将整个字符串相互比较。

检查数字

例如,如果您有兴趣检查一个字符是否为 0-9 数字,请使用 isdigit来自 STL C 部分的方法。

关于C++;仅在匹配预设模式时接受用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46635749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com