我正在尝试下面的代码,以查找字符数组中是否有逗号后跟分号。这是我的密码

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/

10-10 00:55
查看更多