如何检查char数组中是否存在特定的char

时间:2011-12-01 21:24:19

标签: c

如何在char数组中搜索特定字符?

关注我的代码,但我认为函数strchr中的不正确:

while((c = getc(fp)) != EOF) {
   for (i = 0; i < 1; i++) {
      c2[i] = c;
      int test = strchr(";", c2[i]);
   }
   printf("%c", c);
}

我的结构有int索引,int数据和指向下一个寄存器的指针。我用一些来自我的.cvs文件的数据填充数组(c2 [100])。在我阵列的第一个寄存器中,我得到了这样的东西:800;卢卡斯。我需要找到角色';'在这个数组中并将其拆分,然后数字800将是结构 - &gt;索引,名称'lucas'将是结构 - &gt;数据。

1 个答案:

答案 0 :(得分:2)

对于每个读取的字符,您将它存储到c2[]数组的第一个插槽中(忽略数组的其余部分),然后调用strchr()来检查读取的字符是否为是;还是不。使用strchr()就是矫枉过正。以下将更简单:

while((c = getc(fp)) != EOF)
{ 
    if (c == ';')
    {
        ...
    }
    printf("%c", c); 
} 

如果您实际上是尝试搜索数组,那么您使用strchr()方式错误。它应该更像是这样,假设c2[]已经包含您要搜索的以null结尾的字符串数据:

while((c = getc(fp)) != EOF)
{ 
    int test = strchr(c2, c); 
    ...
    printf("%c", c); 
}