我正在尝试以下代码来尝试查找char数组中是否有逗号后跟分号。这是我的代码
char m[80];
char *p = m;
while(p!=pend)
{
char *pend = m + strlen(m);
int i=0;
if(*p!=',' || *p!=';')
{
printf("DDD");
char temp[2];
temp[0] = *p;
temp[1] = '\0';
strcat( m2, temp );
}
else if(*p==',' && (*(p+1)==';'))
{
printf("CCC");
char temp[2];
temp[0] = *p;
temp[1] = '\0';
strcat( m2, temp );
}
}
但问题是,尽管输入是,例如 12,; 3 它永远不会进入"否则如果"部分。我该怎么办?
谢谢
答案 0 :(得分:2)
它不会进入else
部分,因为if
部分始终评估为true(任何字符不等于','
或{{ 1}})。
答案 1 :(得分:2)
if(*p!=',' || *p!=';')
始终为真(*p
不能 ','
和';'
。由于第一个if
始终为true,因此永远不会评估以下else if
。
我不确定您是否尝试使用第一个if
块进行操作。也许最简单的修复'就是删除代码的那一部分。