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