목표

함수 정리 및 개인적인 시간이 있을 때 설명 읽어두기.

각 함수 설명

mbstrncpy

  • 멀티바이트 문자열(Multibyte String)에서 특정 길이만큼 문자를 복사하는 함수입니다.
  • 일반적인 strncpy(...) 함수와 다르게, 다국어(UTF-8, Shift-JIS 등) 환경에서도 정확한 문자 개수를 복사할 수 있도록 설계되었습니다.

사용법

void mbstrncpy(char dest[], char src[], long len);
  • dest → 복사할 대상 문자열 (버퍼)
  • src → 원본 문자열
  • len → 복사할 문자 개수 (-1을 입력하면 가능한 한 최대 길이를 복사)
  • 널 종료 문자(\0)는 자동으로 추가됨

예제

char source[50] = "Hello, World!";
char destination[20];

mbstrncpy(destination, source, 5);
write("Result: %s", destination);

➡️ "Hello"가 destination에 복사됨.

✅ 널 종료 문자(\0)는 자동으로 추가됨 (즉, strncpy(...)와 다르게 마지막 문자가 \0으로 보장됨).

✅ 다국어 문자열(일본어, 한글 등)에서 한 문자가 여러 바이트인 경우에도 정상 동작.

✅ len 매개변수를 -1로 설정하면 가능한 최대한의 문자열을 복사.

mbstrncpy_off

  • 문자열을 특정 위치(destOffset)에서부터 덮어쓰기(overwrite)하는 함수입니다.

사용법

void mbstrncpy_off(char dest[], long destOffset, char src[], long len);
  • dest → 변경할 대상 문자열
  • destOffset → 대상 문자열에서 복사를 시작할 위치 (문자 단위)
  • src → 원본 문자열
  • len → 복사할 문자 개수 (-1을 입력하면 가능한 최대한 복사)

예제

char s1[50] = "eine grüne "; // 독일어로 "a green"
char s2[10] = "Türen"; // 독일어로 "doors"

mbstrncpy_off(s1, 11, s2, 3);
write("Result: %s", s1);  // "eine grüne Tür"

비교

함수 기능 주요특징
mbstrncpy(dest, src, len) 멀티바이트 문자열 복사 다국어 지원, 최대 길이 설정 가능 (-1 사용 가능)
mbstrncpy_off(dest, offset, src, len) 특정 위치에서 문자열 덮어쓰기 지정된 오프셋에서 복사 가능
strncpy(dest, src, len) 일반 문자열 복사 다국어 지원 ❌, 바이트 단위로 동작

'Programming > CANoe' 카테고리의 다른 글

CANoe UI 만들기: 텍스트 박스  (0) 2025.03.10
CANoe UI 만들기: 버튼  (0) 2025.03.10
CANoe 함수: strlen  (0) 2025.03.10
CANoe 함수: sysSetVariableString  (0) 2025.03.10
CANoe 함수: sysGetVariableString  (0) 2025.03.02
블로그 이미지

RIsN

,