-1

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

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

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

4

3 回答 3

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值传递到您的列表中,否则您的所有值都将是相同的参考!

于 2012-10-26T10:54:19.327 回答
1
char *word;
while (NULL != (word = strtok(s, " ."))) {
    Insert(word, &Header1);
}
于 2012-10-26T10:59:57.653 回答
0

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


并将其更改scanf为 ' fgets
注意:我已将 data 声明为 a char *,因此您不能使用 strncpy。如果你想复制字符串(而不是分配指针),那么你应该malloc数据。

于 2012-10-26T10:54:27.600 回答