0

我正在尝试以下代码来尝试查找 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”部分。我能做些什么呢?

谢谢

4

2 回答 2

2

它不会进入该else部分,因为该if部分始终评估为真(任何字符都不等于','或不等于';')。

于 2013-04-12T09:12:19.203 回答
2
if(*p!=',' || *p!=';')

将永远为真(*p不能同时为 ','and ';')。由于第一个if始终为真,因此else if永远不会评估以下内容。

我不确定您要对第一个if块做什么。也许最简单的“修复”就是删除代码的那一部分。

于 2013-04-12T09:12:26.560 回答