簡體   English   中英

C中的字符比較?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM