我目前正在制作一款快速的Hangman游戏,我正在努力从单词中提取正确猜出的字母,并将其插入显示给用户的字符串中。到目前为止,这是我的代码:
std::string word_to_guess = "ataamataesaa";
std::string word_to_fill(word_to_guess.length(), '-');
char user_guess = 'a';
for (auto &character : word_to_guess) {
if (character == user_guess) {
std::size_t index = word_to_guess.find(&character);
word_to_fill[index] = user_guess;
}
}
std::cout << word_to_fill;
这几乎可行,但是它忽略了字符串的最后两个As来猜测我无法理解的内容。
答案 0 :(得分:0)
“查找”将仅返回第一个匹配项。
与其遍历字符,不如遍历word_to_guess和word_to_fill的索引。
for (int i = 0 ; i < word_to_fill.length ; ++i) {
if (word_to_guess[i] == user_guess) {
word_to_fill[i] = user_guess;
}
}