gpt4 book ai didi

c - 如何检查 C 中的字符串是否为空(到目前为止没有任何效果)

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

我必须编写一个代码来检查 Student 1 的名字是否为空,如果是,则要求用户输入姓名。但是,当我使用此代码时,它不会显示该消息。当我按下回车键时,光标会转到下一行,直到我实际输入一些内容。我也用 strcmp 尝试过,但没有任何效果。

#include <stdio.h>
#include <string.h>
{

char charStudent1FirstName[50] = "";

printf("Please enter Student 1's First name: ");
scanf("%s", &charStudent1FirstName);

if (charStudent1FirstName[0] == '\0')
{
printf("Please input Student 1's first name again: ");
scanf("%s", &charStudent1FirstName);
}
}

最佳答案

这是我改变的:

  1. 使用fgets 代替scanf。这意味着如果仅输入这些内容,您实际上会看到空白行。
  2. fgets 结果中删除换行符。
  3. 使用 charStudent1FirstName 而不是 &charStudent1FirstName。您想要传递 char*,而不是 char**。如果您的编译器没有就此向您发出警告,请考虑使用不同的编译器或更改您的编译设置。
  4. 使用循环,以便根据需要多次提示用户输入姓名,直到输入一次为止。

完整的工作代码:

#include <stdio.h>
#include <string.h>

int main() {

char charStudent1FirstName[50] = "";

while (charStudent1FirstName[0] == 0) {
printf("Please input Student 1's first name: ");
fgets(charStudent1FirstName, 50, stdin);
charStudent1FirstName[strcspn(charStudent1FirstName, "\n")] = 0;
}

printf("First name: %s\n", charStudent1FirstName);
}

关于c - 如何检查 C 中的字符串是否为空(到目前为止没有任何效果),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39692672/

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