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",但是我收到的错误是"使用数组类型赋值给表达式".我能做些什么来解决这个问题?
代替
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限制了复制的界限.
我希望你明白.