このコードを作成して、単語辞書を作成しました。各単語は 1 つしか存在できません。一致する場合は、対応するカウンターがインクリメントされます。単語が辞書にある場合は、strcmp()
メソッドが呼び出され、ポインターが交換されます。
私の問題は、関数が呼び出されたときに を使用することstrcmp()
ですが、これを行うたびに、 *wordArr
まったく変更されていません。したがって、コードが実行されるたびに、自動的に < 任意の単語である "" と比較されます。
誰かが私を正しい方向に向けることができますか?
void placeWord(struct wordNode *words,char *tempW)
{
int value;
if(uniqueWordCount==0) //HEAD
{
words = createNewWord(tempW);
}
else ///SEARCHING AND AMMEND
{
while(1)
{
value = strcmp(words->word,tempW);
if(value<0)
{
words =createNewWord(tempW);
(words-1)->next= words;
words->prev = (words-1);
break;
}
else if(value==0)
{
(words->howmany)++;
wordCount++;
break;
}
words=words->next;
if(words->next!=NULL)
break;
}
}
}
.
.
.
.
}
int main(){
.
.
. struct wordNode *wordArr =(struct wordNode* )malloc(size * sizeof(struct wordNode));
placeWord(wordArr,tempW);
.
.
.
}