2014-01-23 2 views
1

문자열 배열 파일을 사용할 수없는 프로그램에서 작업하고 있는데, 대신 문자 배열을 사용하고 있습니다. 내가 정규식을 사용할 수 있고, 정규식과 문자 배열, 또는 심지어 정규식과 단일 문자를 사용하는 방법이 있는지 궁금 해서요?C에서 문자 배열에 regex를 사용할 수 있습니까?

내가 경기에 내 문자 배열을 사용을 시도합니다 xUtility은 "템플릿 클래스 iterator_traits"

if(regex_match(userCommand[3], userCommand[8], isNumeric)) 

오류를 오류의 무리를 throw 할 때 물어 이유 :

Compiler error messages

+6

, 당신은 확실히'표준 : string'를 사용할 수 있습니다. 그리고 하나의 문자에 대한 정규식은 단지, 좀, moronic ... –

+1

이 질문은 너무 현지화되어 있기 때문에 주제가 아닌 것처럼 보입니다. – rightfold

+0

완벽하게 답할 수 있습니다. 그렇게 나쁘지는 않습니다. 그것은 단지 바보 같은 요구 사항입니다. –

답변

5

std::regex_match 및 그 친구들은 반복자를 통해 작동합니다 (물론 const std::string&은 물론 const char*도 오버로드됩니다).

그렇습니다. 그렇습니다. std::string 대신 문자 배열을 사용할 수 있습니다. 설명서를 읽는 것이 좋습니다. 당신의 편집 당


:

if(regex_match(userCommand[3], userCommand[8], isNumeric)) 

userCommand 경우 다음 두 char의하지 포인터 ("반복자")에 전달하는 배열입니다.

시도 :

if(regex_match(&userCommand[3], &userCommand[8], isNumeric)) 

나 : 당신이 정규 표현식에 사용할 수있는 경우

if(regex_match(userCommand + 3, userCommand + 8, isNumeric)) 
+0

감사합니다. xUtility 파일에 오류가 발생했기 때문에 포인터를 생각하지 않았습니다. – Centimane

+0

@Dave : 템플릿이있는 일반적인 함정. –

관련 문제