我正在尝试下面的代码,以查找字符数组中是否有逗号后跟分号。这是我的密码
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 );
}
}
但问题是,eve尽管输入是,例如12,;3它从不输入“else if”部分。我能怎么办?
谢谢你
最佳答案
if(*p!=',' || *p!=';')
将始终为真(
*p
不能同时为','
和';'
)。由于第一个if
始终为真,因此从不计算以下else if
。我不知道你想用第一个块做什么。也许最简单的“修复”就是删除代码的那一部分。
关于c - C中的字符比较?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15967302/