在C中将字符串读入结构数据

nam*_*ino 0 c struct

 typedef struct Node {
   char number[5];
    struct Node *next;
 } Node;   


    char userString[5];
    scanf("%s", userString);

    Node *newNode = malloc(sizeof(Node));
    newNode->number = userString;
Run Code Online (Sandbox Code Playgroud)

我正在尝试将用户输入的字符串读入struct node中的"number",但是我收到的错误是"使用数组类型赋值给表达式".我能做些什么来解决这个问题?

Soh*_*mer 5

代替

 newNode->number = userString;
Run Code Online (Sandbox Code Playgroud)

使用strncpy()

 strncpy(newNode->number, userString,sizeof(newNode->number));
Run Code Online (Sandbox Code Playgroud)

需要strcpy的原因:newnode-> number = userSting,newnode-> number是char []类型因此你需要逐字节循环和填充所有内容,而你的语句指向编译器给出的字符串"赋值给表达式的数组类型"

为什么我使用strncpy而不是strcpy ...因为strncpy限制了复制的界限.

我希望你明白.