Public/tip & tech

strchr()

quantapia 2009. 4. 13. 13:41

strchr()
두 가지 버전이 있다.

const char * strchr ( const char * str, int character ); 
char * strchr ( char * str, int character );
VC++ 2005에서

char* isDigit(char _nextChar)
{
    return strchr("0123456789", _nextChar);
}

이렇게 하면 아래와 같이 에러가 난다.

error C2440: 'return' : 'const char *'에서 'char *'(으)로 변환할 수 없습니다.

그러면 두 가지 방법이 있다.

하나는 isDigit() 함수의 리턴형을 const char*로 바꿔주던가(위에 첫번째 프로토타입처럼)
아니면 아래와 같이 하는 방법이 있다.(위에 두번째 프로토타입처럼)

char* isDigit(char _nextChar)
{
    char *c = "0123456789";
    return strchr(c, _nextChar);
}

참고:
http://www.cplusplus.com/reference/clibrary/cstring/strchr/