我需要創建一個struct wordStruct
保持一個字符串,並將其在文本文件中出現的次數的動態數組:我在使用它們之前是否需要初始化結構的值?
typedef struct wordStruct{
char word[50];
int count = 0;
}wordStruct;
我會得到我從文字閱讀的數量需要的數量該文件,我們稱之爲wordCount
。
struct wordStruct *wordList;
wordList = (wordStruct *)malloc(wordCount * sizeof(wordStruct));
這是爲struct
數組分配內存的正確方法嗎? calloc()
會是更好的選擇嗎?
int wordListIndex = 0;
char[50] inWord; // No word will be more than 49 characters + null terminator
for (i = 0; i < wordCount; i++){
fscanf(data, "%s", inWord);
for (j = 0; j < wordCount; j++){
if (strcmp(wordList[j].word, inWord) == 0){
wordList[j].count++;
break;
}
}
if (j == wordCount){
strcpy(wordList[wordListIndex].word, inWord)
wordListIndex++;
}
我知道這可能不是最有效的代碼,但我有正確的想法嗎?即使這些陣列位置中可能沒有任何數據,我可以使用strcmp()
方法嗎?我是結構新手,我不確定我能做什麼,不能做什麼。
謝謝。
如果你是typedef'ing它,爲什麼你使用struct來聲明一個wordStruct? –
您的第一個結構聲明不是C代碼。它在這裏做什麼?其餘的代碼也充滿了怪異的聲明。 '字[50] inWord;' - 它是什麼? – AnT
我是新的結構,我不確定正確的語法。 –