我对链表有问题。我写了一个函数想把一个句子分成单词。就像我有一个句子“我爱你”,它分成“我”、“爱”、“你”三个词。我有指向句子第一个字母的头指针。该函数将返回一个包含每个单词的头指针的数组。
它工作正常只有一个问题。如果一个词只有一个字母。它将与第二个单词结合。就像“我爱你”一样,它会给出“我爱”和“爱”、“你”这样的词。
想了很久,其他功能都很好用。我认为问题出在for循环中,有人可以帮忙吗?
Node* SplitToWords(Node* cursor){
int i=CountWords(cursor);
Node* array=new Node[i];
Node* t;
t=cursor;
for (int j=0; j<i-1; j++) {
array[j]=*t;
t=t->link;
while (t->data!=' ') {
cursor=t;
t=t->link;
}
t=t->link;
cursor->link=NULL;
}
array[i-1]=*t;
return array;
}