リンクリストに問題があります。文を単語に分割したい関数を書きました。「愛してる」という文が「私」「愛している」「あなた」の3つの単語に分かれているように。文の最初の文字へのヘッドポインターがあります。そして、関数はすべての単語のヘッド ポインターを含む配列を返します。
それはうまく機能しますが、問題は1つだけです。1つの単語が1文字だけの場合。2番目の単語と結合します。「I love you」のように、「I love」「love」「you」などの言葉を発します。
私は長い間考えていましたが、他の機能はうまく機能しています。問題は 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;
}