【发布时间】:2018-03-13 18:49:07
【问题描述】:
我有一个链表并试图将其中一个值分成两个不同的变量。我从包含"0000:c29302" 的id 变量开始,但我想将":" 任一侧的部分分解为clientid 和token 变量。
当我运行我的代码时,它会进入 split 函数中的 while 循环,但随后就会崩溃。谢谢!
typedef struct node {
char *id;
char *clientid;
char *token;
struct node * next;
} credentials;
void split(credentials * head, char *delim);
int main()
{
credentials * head = NULL;
head = malloc(sizeof(credentials));
head->id = "0000:c29302";
head->next = NULL;
split(head, ":");
}
void split(credentials * head, char *delim)
{
char *token;
char *temp;
credentials * current = head;
while (current != NULL) { //THIS WHILE LOOP
temp = current->id;
token = strtok(temp, delim);
while(token != NULL)
{
printf("%s\n", token);
token = strtok(NULL, delim);
}
current = current->next;
}
}
【问题讨论】:
标签: c linked-list strtok