공백으로 짝을 지우고 일부 조건부 논리를 수행하려고 시도하지만 char *에 strcmp를 사용하면 작동하지 않습니다.char *에 strcmp가 컴파일되지만 작동하지 않습니다.
int main(void)
{
char buf[64];
char *cmd;
// assign some space delimited words to buf...
if (strcmp(buf, "somestring junk") == 0) { // this works
// do stuff here
}
cmd = strtok(buf, " ");
if (strcmp(cmd, "somestring") == 0) { // this doesn't work
// do stuff here
}
return 0;
}
'somestring'또는 'somestring \ n'과 같은 다양한 변형을 시도해 보았습니다. 코드가 오류 또는 경고없이 컴파일됩니다. strcmp에 대한 맨 페이지는 strcmp가 작동해야한다고 믿게합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
나는 *** 디버거에서 이것을 실행했습니다. (오른쪽?) 디버거가 말하는 'buf'의 실제 값은 무엇입니까? – abelenky
완전한 예를 제공해주세요 - 도와 드리겠습니다! – Daniel