c中的字符比较?

时间:2013-04-12 09:09:16

标签: c string char

我正在尝试以下代码来尝试查找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 它永远不会进入"否则如果"部分。我该怎么办?

谢谢

2 个答案:

答案 0 :(得分:2)

它不会进入else部分,因为if部分始终评估为true(任何字符不等于','或{{ 1}})。

答案 1 :(得分:2)

if(*p!=',' || *p!=';')

始终为真(*p不能 ','';'。由于第一个if始终为true,因此永远不会评估以下else if

我不确定您是否尝试使用第一个if块进行操作。也许最简单的修复'就是删除代码的那一部分。