gpt4 book ai didi

c - 在循环不起作用时测试 NULL 值的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 04:23:22 25 4
gpt4 key购买 nike

编辑:抱歉,它是用 C 语言而不是 C++ 语言,我有时会把它们搞混。我将 lengthN == NULL 更改为 lengthN == 0 并且在输入名字后出现无限循环(如果名称超过 15 个字符)。

所以我正在尝试制作这个输入玩家姓名的东西,我必须为这个游戏做一个分配,并且由于某种原因它不会重复通过循环。循环应该检查字符串长度,如果它被设置为 NULL 这将在缓冲区之外,它会要求用户重新输入,并且会重复自己直到输入正确的长度。

printf_s("Enter player %d's name (Max 15 characters): ", count);
scanf_s("%s", &name, 15);
lengthN = strlen(name);
printf_s("\n%s\n%d", name,lengthN);

while (lengthN == NULL)
{
printf_s("\nName too big; please enter a name within 15
characters!\n\n");
scanf_s("Enter name: %s", &name, 15);
lengthN = strlen(name);
}

最佳答案

lengthN 不会等于 NULL(至少在 C 中),如 strlen返回一个 size_t 元素,它是一个数值。至少为了使您的代码更合乎逻辑,您应该改为在 while 循环中测试 lengthN 是否等于 0,然后要求用户输入名称直到长度不等于 0。

while (lengthN == 0)
{
printf_s("\nName too big; please enter a name within 15
characters!\n\n");
scanf_s("Enter name: %s", &name, 15);
lengthN = strlen(name);
}

关于c - 在循环不起作用时测试 NULL 值的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44064902/

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