0

リンクリストに問題があります。文を単語に分割したい関数を書きました。「愛してる」という文が「私」「愛している」「あなた」の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;
}
4

1 に答える 1