C++猜谜游戏

C++猜谜游戏,c++,C++,我正在创建一个猜测游戏,通过命令行参数解析输入。我设法用“*”替换了所有的单词。我必须从用户那里获得输入,才能猜出一封信并解密消息。我在替换回这些字母方面遇到了问题,我不知道如何开始。感谢你们的帮助 using namespace std; int main(int argc,char *argv[]) { char letter; string s(argv[1]); string s2(argv[2]); string s3(argv[3]); if(argc == 1) {

我正在创建一个猜测游戏,通过命令行参数解析输入。我设法用“*”替换了所有的单词。我必须从用户那里获得输入,才能猜出一封信并解密消息。我在替换回这些字母方面遇到了问题,我不知道如何开始。感谢你们的帮助

using namespace std;

int main(int argc,char *argv[])
{
char letter;
string s(argv[1]);
string s2(argv[2]);
string s3(argv[3]);


  if(argc == 1)
  {
     cout<<"No arguments.You should run this program in terminal with an argument."<<endl;
     exit(1);
  }
   else
   { 
    if (s.find("programming") != string::npos)
    s.replace(s.find("programming"), 11, "***********");
    if (s2.find("is") != string::npos)
    s2.replace(s2.find("is"), 2, "**");
    if (s3.find("awesome") != string::npos)
    s3.replace(s3.find("awesome"), 7, "*******");

    cout<<"Guess a letter in the message: " << s <<" "<< s2 <<" "<< s3 <<endl;
    cout<<"Enter a letter to guess: ";

    cin>>letter;

  }
  return 0;
}

嗯。我会设法帮助你

首先。启动程序时,假设将3个字符串作为参数传递给程序,并将其分配给std::string变量。然后你要检查,你是否通过了这3个参数

这是错误的。如果不传递3个参数并启动一个程序怎么办?在argv[1]argv[2]和argv[3]中将举行什么?如果你足够幸运,你的程序不会崩溃。您应该首先检查是否传递了参数,如果传递了,则进行与之相关的赋值。否则,您将垃圾分配给s、s2和s3

如果要连续检查输入参数。您应该使用do…while循环。我不会在这里描述它,因为它可以在互联网上的任何地方找到。每次你只需检查给定的字母是否在任何一个字符串中,是的,太棒了,然后在正确的位置用给定的字母替换你的****如果找到了字母。您应该在任何字符串中都有一个字母“*”时执行此操作

我会这样描述这个问题,但我不会为你写这篇文章。最好在编程时学习


在这个论坛上提问之前,我想请你做更多的努力。您至少应该尝试使用任何while循环来完成任务,而不是将其交给我们。我明白,有些人必须从某个地方开始,开始并不容易。祝你好运

你想完成什么?请清楚地告诉我们您的问题陈述!由于变量名的原因,您的代码有点糟糕,而且您应该首先检查是否给出了4个或更多的参数。编程中最重要的技能之一是能够将问题分解为更小的基本部分。你需要在这里做到这一点——你被困住了,因为你没有把目光从大局上移开。考虑一下实现目标所需的所有步骤。如何从用户处获取输入。如何存储来自用户的输入。如何在字符串中查找字符。如何复制字符串-等等。列出你需要的所有工具-对于每个你需要帮助的工具,在这里提出一个简短、具体的问题,而不是一个模糊和过于宽泛的问题。我喜欢这个问题,我认为这是一个有趣的问题。但是这里的大多数人对你的计划不感兴趣,所以他们会拒绝帮助你。我到电脑前会帮你的。目前在电话中另一个提示:你不能只是“扔掉”原来的被猜测的单词。这意味着您需要为每个单词保留两样东西:原始单词本身和包含所有非猜测字符的星号的字符串。