-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