다음 코드를 사용하여 char 배열에 세미콜론이 오는 쉼표가 있는지 확인하려고합니다. 여기에 입력, 예를 12입니다 전날하지만, 내 코드C에서 문자 비교?
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);
}
}
하지만 문제는, 일부 "경우 다른"3 들어간다 결코 그것. 그것에 대해 무엇을 할 수 있습니까?
는if
부분이 항상 true로 평가 (
어떤 문자
','
또는
';'
에 하나 같지 않은) 때문에
디버거로 코드를 단계별로 실행하면 어떻게됩니까? – SecurityMatt
사실이 코드는 bison 파일에 쓰고 있기 때문에 실제로는 사용할 수 없습니다. – yrazlik
함수의 맨 위에서 "raise (SIGINT)"를 수행하고 GDB를 첨부하여 실행하십시오. 디버깅 할 수 없다면 좋은 코드를 작성할 수 없습니다. – SecurityMatt