[英]Char comparison in c?
我正在尝试下面的代码来尝试查找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,它也永远不会输入“ else if”部分。 我该怎么办?
谢谢
它不会进入else
部分,因为if
部分始终求值为true( 任何字符都不等于','
或';'
)。
if(*p!=',' || *p!=';')
将始终为true( *p
不能同时为 ','
和';'
)。 由于第一个if
始终为true,因此后续的else if
永远不会求值。
我不确定您要对第一个if
块做什么。 也许最简单的“修复”是删除代码的那部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.