C 如何检查字符数组中是否存在特定字符
如何在字符数组中搜索特定字符 遵循我的代码,但我认为它在函数C 如何检查字符数组中是否存在特定字符,c,C,如何在字符数组中搜索特定字符 遵循我的代码,但我认为它在函数strchr中不正确: while((c = getc(fp)) != EOF) { for (i = 0; i < 1; i++) { c2[i] = c; int test = strchr(";", c2[i]); } printf("%c", c); } while((c=getc(fp))!=EOF){ 对于(i=0;i索引,名称“lucas”将是结构->数据。对于读取的每个字
strchr
中不正确:
while((c = getc(fp)) != EOF) {
for (i = 0; i < 1; i++) {
c2[i] = c;
int test = strchr(";", c2[i]);
}
printf("%c", c);
}
while((c=getc(fp))!=EOF){
对于(i=0;i<1;i++){
c2[i]=c;
int test=strchr(“;”,c2[i]);
}
printf(“%c”,c);
}
我有一个包含int索引、int数据和指向下一个寄存器的指针的结构。我用来自.cvs文件的一些数据填充数组(c2[100])。在我数组的第一个寄存器中,我得到了这样的值:800;卢卡斯。我需要找到角色“;”在这个数组中,将其拆分,然后数字800将是结构->索引,名称“lucas”将是结构->数据。对于读取的每个字符,您将其存储到
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);
}
man 3 strchr-在shell上执行此操作,并阅读手册页以了解strchr
的功能。您是如何声明c
和c2
的?我真的不知道此代码在做什么。你想找的角色是什么?是不是c2[i]
?循环结束于0是有意的吗?(i<1
意味着你的i
永远都不是>0
)如果只有一次迭代,为什么需要循环?你想实现什么?你知道循环只运行一次吗?我有一个包含int索引、int数据和指向下一个寄存器的指针的结构。我用来自.cvs文件的一些数据填充数组(c2[100])。在我数组的第一个寄存器中,我得到了这样的值:800;卢卡斯。我需要找到角色“;”然后使用我给你的第二个例子,strchr()
的第一个参数传递给你的缓冲区,它包含“800;lucus”
字符串。但是,您提到要拆分缓冲区,在这种情况下,您可以使用strtok()
,或者更好的sscanf()
,而不是使用strchr()
。