检查数组中是否存在字符串,如果没有,则将其添加到C中的数组中

时间:2017-06-15 21:03:37

标签: c arrays string find add

在C中如何搜索字符串数组中是否存在字符串,如果不存在,则将其添加到字符串数组中。

在我的代码中,我得到了一个文件路径 -

char *file_path;

我需要检查它是否已存在于字符串数组中(file_path数组),如果存在则返回else将此file_path添加到字符串数组中。

有人能用C帮我处理这段代码吗?

1 个答案:

答案 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编程。