我正在尝试按字母顺序对单个链接列表进行排序,我想我已经掌握了这个概念,但是我得到了一个编译错误,它说:
function.c: error: assignment to expression with array type newNode->text = newNode->next->text;它还对行node->next->text = temp;说了同样的话,进入链表的每个节点的数据都是从输入中获取的,并且假设在这个场景中有5个节点。我的代码如下:
// the struct used for representing a linked-list node
typedef struct writeText{
char text[100];
struct writeText *next;
}write;
void sorting(write ** front, write ** rear) {
char *temp;
write *newNode;
newNode = *front;
if(newNode) {
while(newNode && newNode->next) {
if(strcmp(newNode->text, newNode->next->text) > 0) {
temp = newNode->text;
newNode->text = newNode->next->text;
newNode->next->text = temp;
}
newNode= newNode->next;
}
}
}那么我如何按字母顺序对我的链表进行排序呢?谢谢
发布于 2021-04-07 21:58:16
不能按赋值复制数组。对于字符串,请使用strcpy或strncpy。对于其他阵列,请使用memcpy或memmove。
更改:
temp = newNode->text;
newNode->text = newNode->next->text;
newNode->next->text = temp;至
strcpy(temp, newNode->next);
strcpy(newNode->text, newNode->next->text);
strcpy(newNode->next->text, temp);https://stackoverflow.com/questions/66987179
复制相似问题