-4
我做了这段代码来创建一个单词字典。每个单词只有一个可以存在;如果是这样,则相应的计数器递增。如果单词在字典中,则调用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);
.
.
.
}
它是但是这只是整个事情的1/10,但它的一半。如果是在java中,我会在6小时前完成。 – user1526400 2012-07-15 03:22:46
我不明白你如何声明'createNewWord()',所以我不能确信它包含了它需要的东西。您可能想要包含该功能。你有没有尝试用调试器击中这个问题,并通过你的代码来查看你创建的字符串是否真的被创建?此外,作为形式,作业的问题应该包括作业标签。 – Makoto 2012-07-15 03:42:55
很难告诉你确切的错误是什么,因为给出的代码不会编译。 – 2012-07-15 03:46:58