Written by 네오 ([email protected]) | Hits: 87 , Lines: 86 |
Re: 이럴 경우엔? |
---|
oasis wrote: > <[email protected]>에서 [email protected]만 추출해 내고 싶은데 어케? 우선 말씀드리고 싶은 것은 스트링으로 어떤 조작을 원할 때에는 Regular Expression 을 사용하는 것이 가장 편한 방법중에 하나 입니다. 그런데 아시다시피 Perl 이나 PHP 같은 스크립트 언어들은 자체적으로 RE 를 처리 하는 펑션들이 들어 있는데 C 에서 사용하기 위해서는 함수를 구현해야 하는 불편이 있습니다만.. 퍼블릭 도메인 사이트 같은데 보시면 그래도 쓸만한 RE 라이브러리가 있을 겁니다. 이런걸 찾아서 자기것으로 만들어서 사용하시는 것이 가장 좋은 방법이라 추천해 드리고 싶슴다.. ^^ 에구..서론이 넘 길어졌군여.. ^^. qDecoder 함수중에 아마 qRemoveSpace 라는 함수가 있을 건데 그걸로는 원하시는 기능을 얻을 수 없을 것 같습니다. 그래서 아래처럼 qStrTrim 이라는 함수를 한번 만들어서 사용해 보는 것도 괜찬을 거 같네요. ^^.. 아래 함수는 말 그대로 스트링 값의 앞,뒤에서 원하는 문자들을 제거해 줍니다. 스페이스 뿐만 아니고 argument 로 전달된 값들을 지워주게 되지요. // 문자열이 값을 가지고 있는지 아닌지를 판단해 주는 매크로 입니다. #define ISZERO(s) ((s) && *(s) ? FALSE : TRUE) char * qStrTrim(char *pszSrc, const char *pszLTrimChars, const char *pszRTrimChars) { char *pBegin, *pEnd; // 원하는 문자열에 값이 없으면 바로 리턴 if (ISZERO(pszSrc)) return pszSrc; // 스트링의 오른쪽에서 원하는 문자들을 제거 해 나갑니다. if (! ISZERO(pszRTrimChars)) { pEnd = pszSrc + strlen(pszSrc) – 1; while (pEnd >= pszSrc && strchr(pszRTrimChars, *pEnd)) pEnd–; *++pEnd = ‘ |