c - C 中比较字符串的问题

标签 c arrays string

我正在尝试将一个字符串与另一个字符串进行比较,如果它们匹配,我希望输出文本“这是正确的”,但我似乎无法让它工作。

代码如下:

int main () 
{
    char * password = "Torroc";
    char * userInput;

    printf("Please enter your password: ");
    scanf("%s", userInput);

    if (strcmp(password, userInput) == 0) {
        printf("That is correct!");
    }
}

最佳答案

在您的代码中,userInput 指针没有提供保存您将使用 scanf 调用传递的字符串。在尝试向其保存/分配任何字符串之前,您需要在堆栈中为 cstring userInput 分配空间。所以...

您需要更改以下代码:

char * userInput;

至:

char userInput[200];

这里,200只是一个任意值。根据您的情况,请选择最大值。 (\0) 的字符串长度 + 1。

关于c - C 中比较字符串的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40876217/

相关文章:

C编程 float ?

c - &符号在 C 宏中的应用是什么?

php - 从 MySQL 数据库中获取数组

javascript - 如何迭代包含对象的数组 - javascript

JAVA - 如何在二维数组的行和列中查找重复值?

c - "Invalid read of size 1"与 mysql_free_result

c - Typedef 结构定义,将指向所述结构的指针作为其元素

java - 字符的出现

java - 如何更改 gui 中字符串的字体,然后将其恢复正常

c++ - wchar_t 和 c_str 字符串转换的意外结果