如何输入单词到链表?

时间:2012-10-26 10:48:07

标签: c string linked-list

我有一个双链表,能够在每个节点中保存字符。这就是我为每个节点输入字符的方法。

printf("Enter string of characters for the list: ");
scanf("%s",s);
for(i=0;s[i]!='\0';i++)
    Insert(s[i],&Header1);

现在我希望修改列表以在每个节点中存储单词。用户提供的输入是一个句子。如何确保每个单词(由空格分隔)进入列表的节点?

3 个答案:

答案 0 :(得分:1)

while ( sscanf( sentence, "%s", &node_value ) == 1 )
{
  //Call to insert into your list goes here
  //Each pass node_value will be the next word
}

注意:您必须按值node_value将值传递到列表中,否则您的所有值都将是相同的参考值!

答案 1 :(得分:1)

char *word;
while (NULL != (word = strtok(s, " ."))) {
    Insert(word, &Header1);
}

答案 2 :(得分:0)

您需要将节点修改为
struct node {
node *prev;
char *data;
node *next;
}


并将scanf更改为“fgets
注意:我已将数据声明为char *,因此您无法使用strncpy。如果要复制字符串(而不是指定指针),那么您应该malloc数据。