在 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);
这应该没问题。请研究一下数组、字符串和函数。也就是说,如果您愿意改进代码,strncpy() 实际上比更简单的 strcpy() 更好。 还可以查看操作动态内存的函数(Malloc、calloc、realloc...) 我还假设您确实以正确的方式声明了数组(作为 char* array[dim])。 此外,您还应该检查各个函数的返回值,但我会让您进行研究,因为看起来您刚刚开始使用 C 编程。
关于检查数组中是否存在字符串,如果不存在则将其添加到C中的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44576988/