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

标签 c arrays string find addition

在 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/

相关文章:

c - 使用指针从单链表中删除项目

c - 这段求平均值的 C 代码有什么问题?

javascript - NodeJS如何将文件转换为字符串

javascript regex - 替换字符串停止词

c - C 中的数组声明和指针赋值

javascript - 变量在运行时未定义,但在使用调试器时定义

javascript - 使用 Angular 提供程序构建 OData $filter URL

arrays - VBScript 中使用 Split() 的动态数组。有没有更好的办法?

ios - XCode,字符串编码,西里尔字母

c - 如果我没有流但有文件描述符,如何使用 fgets 或 getline?