한글스트링에서 ','를 모두 뺄려고 하는데 코딩 방법좀 갈켜주세

익명 사용자의 이미지

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로 변환후 처리하시는것이 확실한 방법임을 다
시 강조드립니다.