c에서 한글로 된 문자열이 있는데 거기거 ','문자가 있으면 모두 제거할려고 하거든여. 코딩 방법좀 갈켜주세여..
string에서 ","를 찾아서 (strstr) 빼세요.
약간(?)의 문제가 있을듯 합니다. byte단위의 연산(strstr...)으로 2byte체계인 한글을 처리하는것은 신뢰성에 문제가 있습니다.
좀 더 주의를 하셔야 합니다. 가장 간단한것은 unicode로 변환후 처리하는 방법이 있습니다만,
다음과 같은 간단한 방법도 있습니다. 이 예제는 단지 한글과 ASCII(7Bit)의 조합으로만 구성되어 있다는 가정하 에 작성된 예제 입니다. 좀더 멀티랭귀지 구현을 위해서는 고려사항이 더 늘 어 나겠죠.
참고 하세요.
const char *src = "테스트 스트링입니다, 여기, 여기, 그리고, A,B,C 여 기도, ..."; char *dest, buf[SOME_LENGTH]; // or alloc dest = buf;
while(*src) { if(*src & 0x80) { // 한글일 경우 2byte처리 *dest++ = *src++; *dest++ = *src++; continue; } if(*src != ',') *dest++ = *src; src++; } *dest = NULL;
0x80값을 & 연산하는 이유는 뭐지요? 미리 감사.. 꾸벅.
c & 0x80연산은 c가 7bit ASCII문자인가를 테스트 하는것입니다. 이연산이 true일 경우는 7bit ascii문자가 아닌것이므로 한글로 생각하고 2byte연산을 한것입니다.(가정에서 한글 + ASCII로 했으므로)
보다 명확하게 하기위해서는 UNICODE로 변환후 처리하시는것이 확실한 방법임을 다 시 강조드립니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re: 한글스트링에서 ','를 모두 뺄려고 하는데 코딩 방법좀 갈켜
string에서 ","를 찾아서 (strstr) 빼세요.
Re^2: 한글스트링에서 ','를 모두 뺄려고 하는데 코딩 방법좀 갈
약간(?)의 문제가 있을듯 합니다.
byte단위의 연산(strstr...)으로 2byte체계인 한글을 처리하는것은
신뢰성에 문제가 있습니다.
좀 더 주의를 하셔야 합니다.
가장 간단한것은 unicode로 변환후 처리하는 방법이 있습니다만,
다음과 같은 간단한 방법도 있습니다.
이 예제는 단지 한글과 ASCII(7Bit)의 조합으로만 구성되어 있다는 가정하
에
작성된 예제 입니다. 좀더 멀티랭귀지 구현을 위해서는 고려사항이 더 늘
어 나겠죠.
참고 하세요.
const char *src = "테스트 스트링입니다, 여기, 여기, 그리고, A,B,C 여
기도, ...";
char *dest, buf[SOME_LENGTH]; // or alloc
dest = buf;
while(*src)
{
if(*src & 0x80) { // 한글일 경우 2byte처리
*dest++ = *src++;
*dest++ = *src++;
continue;
}
if(*src != ',') *dest++ = *src;
src++;
}
*dest = NULL;
Re^3: 답변에 감사드립니다. 테스트해보니 잘되네여... 근데 한
0x80값을 & 연산하는 이유는 뭐지요? 미리 감사.. 꾸벅.
Re^4: 답변에 감사드립니다. 테스트해보니 잘되네여... 근데 한
c & 0x80연산은 c가 7bit ASCII문자인가를 테스트 하는것입니다.
이연산이 true일 경우는 7bit ascii문자가 아닌것이므로
한글로 생각하고 2byte연산을 한것입니다.(가정에서 한글 + ASCII로 했으므로)
보다 명확하게 하기위해서는 UNICODE로 변환후 처리하시는것이 확실한 방법임을 다
시 강조드립니다.
댓글 달기