在C中如何搜索字符串数组中是否存在字符串,如果不存在,则将其添加到字符串数组中。
在我的代码中,我得到了一个文件路径 -
char *file_path;
我需要检查它是否已存在于字符串数组中(file_path数组),如果存在则返回else将此file_path添加到字符串数组中。
有人能用C帮我处理这段代码吗?
答案 0 :(得分:0)
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);
这应该没问题。请对数组,字符串和函数进行研究。如果你愿意改进代码,那么strncpy()实际上比简单的strcpy()更好。 还要看一下操作动态内存的函数(Malloc,calloc,realloc ......) 我也假设你确实以正确的方式声明了数组(作为char * array [dim])。 此外,您应该检查各种功能的返回值,但我会让您进行研究,因为看起来您刚刚开始使用C编程。