在C中如何搜索字符串是否存在於字符串數組中,如果不存在,則將其添加到字符串數組。檢查數組中是否存在字符串,如果不存在,則將其添加到數組中C
在我的代碼,我得到一個文件路徑 -
char *file_path;
我需要檢查,如果它已經存在的字符串(FILE_PATH數組)的數組,如果它的存在,然後返回其他添加此FILE_PATH到字符串數組。
有人可以幫我用C代碼嗎?
在C中如何搜索字符串是否存在於字符串數組中,如果不存在,則將其添加到字符串數組。檢查數組中是否存在字符串,如果不存在,則將其添加到數組中C
在我的代碼,我得到一個文件路徑 -
char *file_path;
我需要檢查,如果它已經存在的字符串(FILE_PATH數組)的數組,如果它的存在,然後返回其他添加此FILE_PATH到字符串數組。
有人可以幫我用C代碼嗎?
for(int i=0; i<dim; i++){
if(strcmp(file_path,array[i])==0) return 0;
}
//if it exits the loop it means that it did not find the string
array=realloc(array,(dim+1)*sizeof(char*));
strcpy(array[dim],file_path);
這應該沒問題。請對數組,字符串和函數進行研究。 I.e strncpy()實際上比簡單的strcpy()更好,如果你願意改進代碼的話。 也看看函數來操縱動態內存(Malloc,calloc,realloc ...) 我還假設你確實聲明瞭數組正確的方式(作爲char *數組[暗]]。 你也應該檢查各種函數的返回值,但我會讓你做你的研究,因爲它看起來像你剛剛開始使用C編程。
將realloc()的結果直接分配給被重新分配的對象的指針始終是錯誤的; realloc()可以在發生錯誤時返回空指針,現在你有內存泄漏並丟失數據。首先分配一個臨時指針,並在重新分配'array'之前檢查成功的重新分配。 –
@DavidBowling的權利,實際上我指定代碼應該被解釋爲一個準則,並且錯誤管理留給誰來執行整個事情。我覺得這篇文章的作者不太能夠理解c代碼。 – BattiestFawn66
這是什麼問題? –
歡迎來到StackOverflow。 請參考[遊覽], 學習問好問題stackoverflow.com/help/how-to-ask, 做個[mcve]。一個MCVE應包含各種樣本輸入(說明所有方面)和期望的輸出。 – Yunnosch
我不能拿出C中的確切代碼。我有僞代碼,並試圖拿出C代碼。 – riju