동등연산자(equality operator)를 통한 문자열 비교
글쓴이: pok / 작성시간: 금, 2005/11/25 - 8:41오후
CPUscheduleAL* Static::createCPUscheduleAL(const char* _pAlgoType){ if(_pAlgoType == "FCFS"){ return new FCFS; } if(_pAlgoType == "SJF"){ return new SJF; } if(_pAlgoType == "PnRR"){ return new PnRR; } }
문자열상수 argv[]를 통해 비교를 해서 그에따른 객체를 생성하려 했는데 실패했습니다.
아마도 문자열 포인터를 동등연산자를 써서 비교한것이 문제인것 같은데요,
1. 동등연사자의 문자열 비교방법이 따로 존재하나요?
2. 만일 없다면, 문자열을 올바르게 비교하는 방법은 무엇인가요?
Forums:
Re: 동등연산자(equality operator)를 통한 문자열 비교
char*와 char*의 비교는 포인터 주소 비교가 되므로 아주 특수한 경우 이외에는 제대로 동작하지 않습니다. cstring 헤더 파일을 삽입하고 !strcmp(alpha, beta) 식으로 하시면 됩니다. (strcmp 함수는 alpha < beta이면 -1, alpha == beta이면 0, alpha > beta이면 1을 반환합니다. 동등 검사를 위해 !를 쓰는 건 일종의 idiom이죠.)
- 토끼군
string 객체에 담아서 동등연산자(==)를 사용하거나, strncmp
string 객체에 담아서 동등연산자(==)를 사용하거나, strncmp라는 함수를 사용하세요
답변감사합니다.흐. 안되는게 정상이었군요.
답변감사합니다.
흐. 안되는게 정상이었군요.
poklog at http://poksion.cafe24.com/poklog/
댓글 달기