String Idk如果我的ide被窃听或什么,但我需要帮助,请

String Idk如果我的ide被窃听或什么,但我需要帮助,请,string,cs50,String,Cs50,好吧,我一直在学习CS50EDX课程,一直在使用他们的ide。我今天继续写,输入了非常简单的代码,看看我是否记得。我不知道我是不是很笨,但是当我把这段代码放进去的时候,我得到了一个错误:“format指定类型‘char*’,但是参数的类型是‘string*”(又名‘char**’)[-Werror,-Wformat] scanf(“%s”、&name);“ 我有其他类似的代码,几乎相同的代码,它工作得很好。请帮忙,那将非常感激。(我是初学者) #包括 #包括 内部主(空) { 字符串名; pri

好吧,我一直在学习CS50EDX课程,一直在使用他们的ide。我今天继续写,输入了非常简单的代码,看看我是否记得。我不知道我是不是很笨,但是当我把这段代码放进去的时候,我得到了一个错误:“format指定类型‘char*’,但是参数的类型是‘string*”(又名‘char**’)[-Werror,-Wformat] scanf(“%s”、&name);“

我有其他类似的代码,几乎相同的代码,它工作得很好。请帮忙,那将非常感激。(我是初学者)

#包括
#包括
内部主(空)
{
字符串名;
printf(“名称:”);
scanf(“%s”、&name);
printf(“你好%s”,名称);
}
从youtube复制的代码对我不起作用:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    char name[10];
    printf("Name: ");
    scanf("%s", &name);
    printf("Hello %s", name);
}
#包括
#包括
内部主(空)
{
字符名[10];
printf(“名称:”);
scanf(“%s”、&name);
printf(“你好%s”,名称);
}
当我在这里搜索时:
string
声明为
typedef char*string因此您的代码有两个问题

  • 您没有为
    字符串
    分配内存,这可能会导致编译后崩溃
  • 您没有正确使用
    scanf
    。您应该直接传递
    字符串
    变量,而不是通过它的地址

  • 我不知道
    cs50.h
    中的
    string
    是什么类型,但正如我所看到的,错误是您正在传递一个
    char**
    。请尝试向我们显示定义了
    string
    的标题,或者尝试将
    *name
    传递给
    scanf
    。请不要垃圾邮件发送不相关的标记。将*name传递给scanf是什么意思?idk我认为字符串是ide自带的,因为我们不知道字符串是从哪里来的,它是什么
    scanf
    获取分配的
    char
    数组的地址,或指向
    char
    内存的指针
    string
    不是C标准的一部分,因此为了帮助您,您必须描述
    string
    是什么,比如查看它的标题。Idk它来自哪里,因为如果删除标题,它仍然知道什么是字符串。我认为这是ide的一部分,但我实际上不知道。我看了一段youtube视频,我输入了他的代码,但对我来说不起作用。我通过使用char以不同的方式获得了它。我感谢帮助,结果发现我只是个傻瓜,忘记了为了使用“string”,我必须使用cs50标题并输入“string name=get_string”(“你叫什么名字?”);始终检查您的第三方标题以查看库的接口和数据结构。我会的。再次感谢您。非常感谢。请确保将主题标记为已解决。
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void)
    {
        char name[10];
        printf("Name: ");
        scanf("%s", &name);
        printf("Hello %s", name);
    }