输出中的奇数字符

Odd characters in output

本文关键字:数字 字符 输出      更新时间:2023-10-16

我正在尝试用 c++ 编写一个简单的刽子手游戏,方法是从列表中选择一个单词,检查字符串长度,然后将许多 * 写入一个新字符串中以用作尚未猜测的单词中的占位符。 最大长度为 9 个字母。 我让游戏几乎完美无缺地运行 - 问题是每当我的单词有 8 或 9 个字母时,程序就会打印正确数量的 *,后跟一两个字符。 研究告诉我这些是不可打印的字符,但我已经尝试了一段时间,我不确定它们为什么在这里,为什么它们只显示一个字长>7,或者如何摆脱它们。 下面是相关代码。 有什么建议吗?

生成 *s:

char word[80];
int len=strlen(targetWord);
for(int i=0;i<len;i++){
    word[i]='*';
}

您忘了在字符串末尾添加终止符。 在for循环之后,添加:

word[i] = '';

或者,最好使用 std::string 而不是 C 字符串。

尝试改用std::string

std::string word;
int len=strlen(targetWord);
for(int i=0;i<len;i++){
    word+='*';
}