typedef struct Node {
char number[5];
struct Node *next;
} Node;
char userString[5];
scanf("%s", userString);
Node *newNode = malloc(sizeof(Node));
newNode->number = userString;
我正在尝试将用户输入的字符串读入struct node中的“number”,但是我收到的错误是“使用数组类型赋值给表达式”。我能做些什么来解决这个问题?
答案 0 :(得分:5)
而不是
newNode->number = userString;
使用strncpy()
strncpy(newNode->number, userString,sizeof(newNode->number));
需要strcpy的原因: newnode-> number = userSting,newnode-> number是char []类型,因此你需要逐字节循环和填充所有内容,而你的语句指向字符串,这就是为什么编译器给出“赋值给表达式”数组类型“
为什么我使用了strncpy而不是strcpy ... 因为strncpy限制了复制的范围。
我希望你明白。
答案 1 :(得分:2)
您需要使用strcpy函数将数据从userString
正确复制到number
数组。