我制作了这段代码来创建一个单词词典。每个单词只能存在一个;如果是,则相应的计数器增加。如果单词在字典中,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);
.
.
.
}