목표
함수 정리 및 개인적인 시간이 있을 때 설명 읽어두기.
각 함수 설명
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 |