So i want to make a simple hangman console game that chooses random words from a file. The problem is, when i try to check if the input is found in the word i'm trying to guess, the program jumps over the check. I'm thinking i made a serious mistake earlier in another functions and i don't know how to fix it. Below you can find the first function:
#include <string>
#include <iostream>
int main()
{
  std::string CorrectStrMemo = "hello";
  std::string TemporaryStrMemo = "h---o";
  std::string WordToGuess;
  WordToGuess = TemporaryStrMemo;
  std::cout << WordToGuess << std::endl;
  int lives;
  if (WordToGuess.length() < 4)
    lives = 5;
  else
    lives = WordToGuess.length() / 2 + 3;
  std::cout << "\nYou have " << lives << " lives!";
  char UserGuess;
  std::cout << "(" << CorrectStrMemo << ")";
  while (lives > 0 && WordToGuess != CorrectStrMemo)
  {
    std::cout << "\nGuess the letter : ";
    std::cin >> UserGuess;
    for (size_t i = 1; i < WordToGuess.length() - 1; i++) //works fine for small words or 3 letter words, with 1 unknown one
    {
      for (size_t j = 1; j < CorrectStrMemo.length() - 1; j++)
      {
        if (lives > 0 && CorrectStrMemo[j] == UserGuess)
        {
          std::cout << "\nCorrect guess! Keep going!";
          WordToGuess[i] = UserGuess;
          std::cout << "\nUpdated word is: " << WordToGuess;
          std::cout << "\nLives remaining: " << lives;
          break;
        }
        else
        {
          std::cout << "\nIncorrect guess!" << std::endl;
          lives--;
          std::cout << lives << " lives remaining. Use them wisely!" << std::endl;
          std::cout << " " << WordToGuess;
          break;
        }
        break;
      }
    }
    //conditions to break the while and display the end screeens
    if (WordToGuess == CorrectStrMemo && lives > 0)
    {
      std::cout << std::endl
        << "You won!";
      break;
    }
    else if (lives == 0)
    {
      std::cout << "You have no lives left to play!" << std::endl //need to connect it with the win/lose screeens
        << "The game is over!";
      break;
    }
  }
}
Sorry for pasting all the code, but i don't know where is the flaw so i thought is better to do it this way. Thanks in advance!
 
    