String 유틸리티
본 장에서는 문자열과 관련된 유틸리티에 해당하는 API를 설명한다.
1. 개요
문자열은 2가지 유형으로 나뉜다. 즉 NULL 종료 문자열과 길이 문자열이다.
NULL 종료 문자열은 NULL 문자(‘\0’)로 문자열의 종료를 판단하는 문자 집합을 의미하고, 길이 문자열은 문자열의 길이가 한정되어 있는 문자 집합을 의미한다. 각각의 특징은 다음과 같다.
-
NULL 종료 문자열
-
문자열의 길이가 정해져 있지 않다.
-
문자열 중 NULL 문자 이후의 문자는 무시된다.
-
예
{‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘\0’} == “ABCDEFG”
-
-
길이 문자열
-
문자열의 길이가 정해져 있다.
-
입력 받은 수만큼의 문자만 인식한다. 단, 문자열 내에 NULL 문자가 있으면 NULL 문자의 앞 문자까지만 인식한다.
-
예
[{‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘\0’}, 2] == “AB” [{‘A’, ‘B’, ‘C’, ‘\0’, ‘D’, ‘E’}, 6] == “ABC”
-
2. pfmStrIsLower
NULL 종료 문자열의 모든 문자가 소문자인지를 체크한다.
-
프로토타입
long pfmStrIsLower(char *str);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 소문자인 경우
FALSE
입력 문자열의 모든 문자에 대문자가 존재하거나 길이가 0인 문자열이 입력한 경우
-
예제
rc = pfmStrIsLower(“ abcDEF 1. 23hljk ”); /* rc == FALSE */ rc = pfmStrIsLower(“ abcdef 1. 23hljk ”); /* rc == TRUE */ rc = pfmStrIsLower(“”); /* rc == FALSE */
3. pfmStrnIsLower
길이 문자열의 모든 문자가 소문자인지를 체크한다.
-
프로토타입
long pfmStrnIsLower(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
len (입력)
문자열 길이
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 소문자인 경우
FALSE
입력 문자열의 모든 문자에 대문자가 존재하거나 길이가 0인 문자열이 입력한 경우
-
예제
/* strlen(“abcDEF”) == 6 */ rc = pfmStrnIsLower(“abcDEF”, 1); /* rc == TRUE */ rc = pfmStrnIsLower(“abcDEF”, 3); /* rc == TRUE */ rc = pfmStrnIsLower(“abcDEF”, 4); /* rc == FALSE */ rc = pfmStrnIsLower(“abcDEF”, 6); /* rc == FALSE */ rc = pfmStrnIsLower(“abcDEF”, 7); /* null position */ /* rc == FALSE */ rc = pfmStrnIsLower(“abcDEF”, 8); /* after null position */ /* rc == FALSE */ rc = pfmStrnIsLower(“”, 8); /* rc == FALSE */
4. pfmStrIsUpper
NULL 종료 문자열의 모든 문자가 대문자인지를 체크한다.
-
프로토타입
long pfmStrIsUpper(char *str);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 대문자인 경우
FALSE
입력 문자열의 모든 문자에 소문자가 존재하는 경우
-
예제
rc = pfmStrIsUpper(“ abcDEF 1. 23hljk ”); /* rc == FALSE */ rc = pfmStrIsUpper(“ abcdef 1. 23hljk ”); /* rc == TRUE */ rc = pfmStrIsUpper(“”); /* rc == FALSE */
5. pfmStrnIsUpper
길이 문자열의 모든 문자가 대문자인지를 체크한다.
-
프로토타입
long pfmStrnIsUpper(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
len (입력)
문자열 길이
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 대문자인 경우
FALSE
첫 번째 문자가 NULL이거나 소문자가 존재하는 경우
-
예제
/* strlen(“ABCdef”) == 6 */ rc = pfmStrnIsUpper(“ABCdef”, 1); /* rc == TRUE */ rc = pfmStrnIsUpper(“ABCdef”, 3); /* rc == TRUE */ rc = pfmStrnIsUpper(“ABCdef”, 4); /* rc == FALSE */ rc = pfmStrnIsUpper(“ABCdef”, 6); /* rc == FALSE */ rc = pfmStrnIsUpper(“ABCdef”, 7); /* null position */ /* rc == FALSE */ rc = pfmStrnIsUpper(“ABCdef”, 8); /* after null position */ /* rc == FALSE */ rc = pfmStrnIsUpper(“”, 8); /* rc == FALSE */
6. pfmStrIsAlpha
NULL 종료 문자열의 모든 문자가 알파벳인지를 체크한다.
-
프로토타입
long pfmStrIsAlpha(char *str);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 알파벳인 경우
FALSE
첫 번째 문자가 NULL이거나 알파벳이 아닌 문자가 존재하는 경우
-
예제
char MIXED_STR[] = “ abcDEF @#$! 1. 23hljk “; char ALPHA_ONLY[] = “abcDEF”; char ALPHA_SPACE[] = “ ab cDef “ char ALPHA_RSPACE[] = “abcDef “ char ALPHA_NUM[] = “abcDEF123hljk” rc = pfmStrIsAlpha(MIXED_STR); /* rc == FALSE */ rc = pfmStrIsAlpha(ALPHA_ONLY); /* rc == TRUE */ rc = pfmStringIsAlphabetic(ALPHA_SPACE); /* rc == FALSE */ rc = pfmStrIsAlpha(ALPHA_RSPACE); /* rc == FALSE */ rc = pfmStrIsAlpha(ALPHA_NUM); /* rc == FALSE */ rc = pfmStrIsAlpha(“”); /* rc == FALSE */
7. pfmStrnIsAlpha
길이 문자열의 모든 문자가 알파벳인지를 체크한다.
-
프로토타입
long pfmStrnIsAlpha(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
len (입력)
문자열 길이
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 알파벳인 경우
FALSE
첫 번째 문자가 NULL이거나 알파벳이 아닌 문자가 존재하는 경우
-
예제
char MIXED_STR[] = “ abcDEF @#$! 1. 23hljk “; char ALPHA_ONLY[] = “abcDEF”; char ALPHA_RSPACE[] = “abcDef “ char ALPHA_NUM[] = “abcDEF123hljk” rc = pfmStrnIsAlpha(MIXED_STR, (int)strlen(MIXED_STR)); /* rc == FALSE */ rc = pfmStrnIsAlpha(ALPHA_ONLY, (int)strlen(ALPHA_ONLY)); /* rc == TRUE */ rc = pfmStrnIsAlpha(ALPHA_ONLY, (int)strlen(ALPHA_ONLY) + 1000); /* rc == TRUE */ rc = pfmStrnIsAlpha(ALPHA_RSPACE, 5); /* rc == TRUE */ rc = pfmStrnIsAlpha(ALPHA_NUM, 10); /* null position */ /* rc == FALSE */ rc = pfmStrnIsAlpha(ALPHA_NUM, 5); /* after null position */ /* rc == TRUE */ rc = pfmStrnIsAlpha(“”, 8); /* rc == FALSE */
8. pfmStrIsAlphaNumeric
NULL 종료 문자열의 모든 문자가 알파벳 또는 숫자인지를 체크한다.
-
프로토타입
long pfmStrIsAlphaNumeric(char *str);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
-
반환값
이면 TRUE를 그 외의 경우FALSE를 반환한다.
반환값 설명 TRUE
입력 문자열의 모든 문자가 알파벳 또는 숫자인 경우
FALSE
입력 문자열의 모든 문자가 알파벳 또는 숫자가 아닌 경우
-
예제
char MIXED_STR[] = “ abcDEF @#$! 1. 23hljk “; char ALPHA_NUM[] = “abcDEF123hljk” rc = pfmStrIsAlphaNumeric(MIXED_STR); /* rc == FALSE */ rc = pfmStrIsAlphaNumeric(ALPHA_NUM); /* rc == TRUE */ rc = pfmStrIsAlphaNumeric(“”); /* rc == FALSE */
9. pfmStrnIsAlphaNumeric
길이 문자열의 모든 문자가 알파벳 또는 숫자인지를 체크한다.
-
프로토타입
long pfmStrnIsAlphaNumeric(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
len (입력)
문자열의 길이
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 알파벳 또는 숫자인 경우
FALSE
입력 문자열의 모든 문자가 알파벳 또는 숫자가 아닌 경우
-
예제
char MIXED_STR[] = “ abcDEF @#$! 1. 23hljk “; char ALPHA_NUM[] = “abcDEF123hljk” rc = pfmStrnIsAlphaNumeric(MIXED_STR, (int)strlen(MIXED_STR)); /* rc == FALSE */ rc = pfmStrnIsAlphaNumeric(MIXED_STR, 5); /* rc == FALSE */ rc = pfmStrnIsAlphaNumeric(ALPHA_NUM, (int)strlen(ALPHA_NUM)); /* rc == TRUE */ rc = pfmStrnIsAlphaNumeric(ALPHA_NUM, (int)strlen(ALPHA_NUM) + 1000); /* rc == TRUE */ rc = pfmStrnIsAlphaNumeric(“”, 8); /* rc == FALSE */
10. pfmStrIsNull
문자열의 첫 번째 문자가 NULL(‘\0’)인지를 체크한다.
-
프로토타입
long pfmStrIsNull(char *str);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
-
반환값
반환값 설명 TRUE
첫 번째 문자가 NULL인 경우
FALSE
첫 번째 문자가 NULL이 아닌 경우
-
예제
char STR_NULL[] = “\0\0\0\0\0\0” char STR_NULL _ALPHA[] = “\0\0ABC\0\0\0” rc = pfmStrIsNull(STR_NULL); /* rc == TRUE */ rc = pfmStrIsNull(STR_NULL _ALPHA); /* rc == TRUE */ rc = pfmStrIsNull(“GH”); /* rc == FALSE */ rc = pfmStrIsNull(“”); /* rc == TRUE */
11. pfmStrnIsNull
N개의 연속된 문자가 모두 NULL(‘\0’)인지를 체크한다.
-
프로토타입
long pfmStrnIsNull(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
len (입력)
문자열의 길이
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 NULL인 경우
FALSE
입력 문자열의 모든 문자가 NULL이 아닌 경우
-
예제
char STR_NULL[] = “\0\0\0\0\0\0” char STR_NULL _ALPHA[] = “\0\0ABC\0\0\0” rc = pfmStrnIsNull(STR_NULL, (int)sizeof(STR_NULL)); /* rc == TRUE */ rc = pfmStrnIsNull(STR_NULL _ALPHA, (int)sizeof(STR_NULL _ALPHA)); /* rc == FALSE */ rc = pfmStrnIsNull(“GH”, (int)sizeof(“GH”)); /* rc == FALSE */ rc = pfmStrnIsNull(“”, 8); /* rc == TRUE */
12. pfmStrIsNumber
NULL 종료 문자열의 모든 문자가 숫자인지를 체크한다.
-
프로토타입
long pfmStrIsNumber(char *str);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 숫자인 경우
FALSE
입력 문자열의 모든 문자가 숫자가 아닌 경우
-
예제
char STR_NUM[] = “0123456789” rc = pfmStrIsNumber(STR_NUM); /* rc == TRUE */ rc = pfmStrIsNumber(“”); /* rc == FALSE */
13. pfmStrnIsNumber
길이 문자열의 모든 문자가 숫자인지를 체크한다.
-
프로토타입
long pfmStrnIsNumber(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
len (입력)
문자열의 길이
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 숫자인 경우
FALSE
입력 문자열의 모든 문자가 숫자가 아닌 경우
-
예제
char STR_NUM[] = “0123456789” rc = pfmStrnIsNumber(STR_NUM, (int)strlen(STR_NUM)); /* rc == TRUE */ rc = pfmStrnIsNumber(“”, 8); /* rc == FALSE */
14. pfmStrIsSpace
NULL 종료 문자열의 모든 문자가 space인지를 체크한다.
-
프로토타입
long pfmStrIsSpace(char *str);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 space로 되어 있거나 NULL인 경우
FALSE
입력 문자열의 모든 문자가 space로 되어 있거나 NULL 이외의 경우
-
예제
char STR_SPACE[] = “ ” char STR_SPACE_ALPHA[] = “ abc” char STR_ALPHA_SPACE[] = “asdf abc” rc = pfmStrIsSpace(STR_SPACE); /* rc == TRUE */ rc = pfmStrIsSpace(STR_SPACE_ALPHA); /* rc == FALSE */ rc = pfmStrIsSpace(STR_ALPHA_SPACE); /* rc == FALSE */ rc = pfmStrIsSpace(“”); /* rc == FALSE */
15. pfmStrnIsSpace
길이 문자열의 모든 문자가 space인지를 체크한다.
-
프로토타입
long pfmStrnIsSpace(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
len (입력)
문자열의 길이
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 space로 되어 있거나 NULL인 경우
FALSE
입력 문자열의 모든 문자가 space로 되어 있거나 NULL 이외의 경우
-
예제
char STR_SPACE[] = “ ” char STR_SPACE_ALPHA[] = “ abc” rc = pfmStrnIsSpace(STR_SPACE, (int)strlen(STR_SPACE)); /* rc == TRUE */ rc = pfmStrnIsSpace(STR_SPACE_ALPHA, (int)strlen(STR_SPACE)); /* rc == TRUE */ rc = pfmStrnIsSpace(STR_SPACE_ALPHA, (int)strlen(STR_SPACE_ALPHA)); /* rc == FALSE */ rc = pfmStrnIsSpace(“”, 8); /* rc == FALSE */
16. pfmStrIsSpaceNull
NULL 종료 문자열의 모든 문자가 space로 되어 있는지 또는 첫 번째 문자가 NULL인지를 체크한다.
-
프로토타입
long pfmStrIsSpaceNull(char *str);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 space이거나 첫 번째 문자가 NULL인 경우
FALSE
입력 문자열의 모든 문자가 space이거나 첫 번째 문자가 NULL 이외의 경우
-
예제
char STR_SPACE[] = “ ” char STR_SPACE_ALPHA[] = “ abc” char STR_ALPHA_SPACE[] = “asdf abc” rc = pfmStrIsSpaceNull(“\0\0\0”); /* rc == TRUE */ rc = pfmStrIsSpaceNull(STR_SPACE); /* rc == TRUE */ rc = pfmStrIsSpaceNull(STR_SPACE_ALPHA); /* rc == FALSE */ rc = pfmStrIsSpaceNull(STR_ALPHA_SPACE); /* rc == FALSE */ rc = pfmStrIsSpaceNull(“”); /* rc == FALSE */
17. pfmStrnIsSpaceNull
길이 문자열의 모든 문자가 space로 되어 있는지 또는 첫 번째 문자가 NULL인지를 체크한다.
-
프로토타입
long pfmStrnIsSpaceNull(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
len (입력)
문자열의 길이
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 space로 되어 있거나 첫 번째 문자가 NULL인 경우
FALSE
입력 문자열의 모든 문자가 space로 되어 있거나 첫 번째 문자가 NULL 이외의 경우
-
예제
char STR_SPACE[] = “ ” char STR_SPACE_ALPHA[] = “ abc” rc = pfmStrnIsSpaceNull(“\0\0\0”, 3); /* rc == TRUE */ rc = pfmStrnIsSpaceNull(STR_SPACE, (int)strlen(STR_SPACE)); /* rc == TRUE */ rc = pfmStrnIsSpaceNull(STR_SPACE_ALPHA, (int)strlen(STR_SPACE_ALPHA) - 3); /* rc == TRUE */ rc = pfmStrnIsSpaceNull(STR_SPACE_ALPHA, (int)strlen(STR_SPACE_ALPHA)); /* rc == FALSE */ rc = pfmStrnIsSpaceNull(“”, 8); /* rc == TRUE */
18. pfmStrIsZero
NULL 종료 문자열의 모든 문자가 0인지를 체크한다.
-
프로토타입
long pfmStrIsZero(char *str);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 0인 경우
FALSE
입력 문자열의 모든 문자가 0 이외인 경우
-
예제
rc = pfmStrIsZero(“000000000000”); /* rc == TRUE */ rc = pfmStrIsZero(“”); /* rc == FALSE */
19. pfmStrnIsZero
길이 문자열의 모든 문자가 0인지를 체크한다.
-
프로토타입
long pfmStrnIsZero(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
len (입력)
문자열의 길이
-
반환값
반환값 설명 TRUE
입력 문자열의 모든 문자가 0인 경우
FALSE
입력 문자열의 모든 문자가 0 이외인 경우
-
예제
rc = pfmStrnIsZero(“00000”, 5); /* rc == TRUE */ rc = pfmStrnIsZero(“000001234”, 5); /* rc == TRUE */ rc = pfmStrnIsZero(“000001234”, 7); /* rc == FALSE */ rc = pfmStrnIsZero(“”, 8); /* rc == FALSE */
20. pfmStrIsValidDigit
주어진 문자열의 주민등록번호나 사업자등록번호의 유효성을 체크한다.
-
프로토타입
long pfmStrIsValidDigit(long fn_code, char *in_str, long str_len);
-
파라미터
파라미터명 설명 fn_code (입력)
-
PFM_VALID_DIGIT_CHK_ID_NO : 주민등록번호
-
PFM_VALID_DIGIT_CHK_CMPY_NO : 사업자등록번호
*in_str (입력)
체크할 문자열
str_len (입력)
in_str의 길이
-
-
반환값
반환값 설명 TRUE
입력 문자열의 정합성 체크 결과 문제가 없는 경우
FALSE
입력 문자열의 정합성 체크 결과 문제가 있는 경우
-
예제
rc = pfmStrIsValidDigit (PFM_VALID_DIGIT_CHK_ID_NO, “00000”, 5); /* rc == TRUE */
21. pfmStrIsKsc
NULL 종료 문자열의 모든 문자가 한글인지를 체크한다.
옵션 파라미터를 이용하여 다른 문자도 한글로 인식하도록 할 수 있다. 이 옵션은 중복으로 입력할 수 있다.
-
프로토타입
long pfmStrIsKsc(char *src, char *opt);
-
파라미터
파라미터명 설명 *src (입력)
체크할 문자열
*opt (입력)
옵션(여기에 입력되는 문자도 한글로 처리)
-
A : 문자열에 알파벳이 있어도 한글로 처리
-
N : 문자열에 숫자가 있어도 한글로 처리
-
S : 문자열에 space(0x20)가 있어도 한글로 처리
-
-
반환값
반환값 설명 TRUE
입력된 문자열이 모두 한글로 이루어진 경우
FALSE
입력된 문자열이 모두 한글이 아닌 문자가 있는 경우
RC_ERR
opt의 길이가 10글자를 넘거나 잘못된 값이 입력된 경우
-
예제
char str[] = “13층의 A사장은 좋다”; long rc; rc = pfmStrIsKsc(str, “A”); if(rc == FALSE) { PFM_ERR(“한글 외의 문자가 포함”); return RC_ERR; } else if(rc == RC_ERR) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }문자열 Option 반환값 ”13층의 A사장은 좋다”
” ”
FALSE
”A”
FALSE
”AN”
FALSE
”SN”
FALSE
”ANS”
TRUE
22. pfmStrnIsKsc
길이 문자열의 모든 문자가 한글인지를 체크한다.
옵션 파라미터를 이용하여 다른 문자도 한글로 인식하도록 할 수 있다. 이 옵션은 중복으로 입력할 수 있다.
-
프로토타입
long pfmStrnIsKsc(char *src, long len, char *opt);
-
파라미터
파라미터명 설명 *src (입력)
체크할 문자열
len (입력)
문자열 길이
*opt (입력)
옵션(여기에 입력되는 문자도 한글로 처리)
-
A : 문자열에 알파벳이 있어도 한글로 처리
-
N : 문자열에 숫자가 있어도 한글로 처리
-
S : 문자열에 space(0x20)가 있어도 한글로 처리
-
-
반환값
반환값 설명 TRUE
입력된 문자열이 모두 한글로 이루어진 경우
FALSE
입력된 문자열이 모두 한글이 아닌 문자가 있는 경우
RC_ERR
문자열이 NULL이거나 문자열 길이가 0 이하의 값이 입력된 경우
-
예제
char str[20 + 1] = “KOREA에오신걸환영합니다”; long rc; rc = pfmStrnIsKsc(str, 20, “A”); if(rc == FALSE) { PFM_ERR(“한글 외의 문자가 포함”); return RC_ERR; } else if(rc == RC_ERR) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
23. pfmStrnIsKorean
입력된 문자열에 한글이 한자라도 포함되어 있는지를 체크한다.
-
프로토타입
long pfmStrnIsKorean(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
체크할 문자열
len (입력)
문자열 길이
-
반환값
반환값 설명 TRUE
입력된 문자열에 한글이 있는 경우
FALSE
입력된 문자열에 한글이 없는 경우
RC_ERR
문자열이 NULL이거나 문자열 길이가 0 이하의 값이 입력된 경우
-
예제
char str[100 + 1] = “KOREA에오신걸환영합니다”; long rc; rc = pfmStrnIsKorean(str, strlen(str)); if(rc == TRUE) { PFM_ERR(“한글이 포함된 문자열임”); return RC_ERR; } else if(rc == RC_ERR) { PFM_ERR(“%s”, pfmStrGetErrorMsg());); return RC_ERR; }
24. pfmStrLTrim
NULL 종료 문자열의 왼쪽 공백을 제거한다.
-
프로토타입
char * pfmStrLTrim(char *str);
-
파라미터
파라미터명 설명 *str (입출력)
체크할 문자열
-
반환값
왼쪽 공백이 제거된 문자열의 포인터가 반환된다.
-
예제
char STR[] = “ abcDEF 1. 23hljk ”; char STR_LTRIM[] = “abcDEF 1. 23hljk ”; char SPACE[] = “ “ char STR_EMPTY[] = “”; strncpy(ostr, pfmStrLTrim(STR), sizeof(STR)); /* ostr == STR_LTRIM */ strncpy(ostr, pfmStrLTrim(SPACE), sizeof(SPACE)); /* ostr == STR_EMPTY */
25. pfmStrnLTrim
길이 문자열의 왼쪽 공백을 제거한다.
-
프로토타입
char * pfmStrnLTrim(char *str, long len);
-
파라미터
파라미터명 설명 *str (입출력)
체크할 문자열
len (입력)
문자열의 길이
-
반환값
왼쪽 공백이 제거된 문자열의 포인터가 반환된다.
-
예제
char STR[] = “ abcDEF 1. 23hljk ”; char STR_LTRIM[] = “abcDEF 1. 23hljk ”; char SPACE[] = “ “ char STR_EMPTY[] = “”; strncpy(ostr, pfmStrnLTrim(STR, sizeof(STR)), sizeof(STR)); /* ostr == STR_LTRIM */ strncpy(ostr, pfmStrnLTrim(SPACE, sizeof(SPACE)), sizeof(SPACE)); /* ostr == STR_EMPTY[] */
26. pfmStrRTrim
NULL 종료 문자열의 오른쪽 공백을 제거한다.
-
프로토타입
char * pfmStrRTrim(char *str);
-
파라미터
파라미터명 설명 *str (입출력)
체크할 문자열
-
반환값
오른쪽 공백이 제거된 문자열의 포인터가 반환된다.
-
예제
char STR[] = “ abcDEF 1. 23hljk ”; char STR_RTRIM[] = “ abcDEF 1. 23hljk”; char SPACE[] = “ “ char STR_EMPTY[] = “”; strncpy(ostr, pfmStrRTrim(STR), sizeof(STR)); /* ostr == STR_RTRIM */ strncpy(ostr, pfmStrRTrim(SPACE), sizeof(SPACE)); /* ostr == STR_EMPTY */
27. pfmStrnRTrim
길이 문자열의 오른쪽 공백을 제거한다.
-
프로토타입
char * pfmStrnRTrim(char *str, long len);
-
파라미터
파라미터명 설명 *str (입출력)
체크할 문자열
len (입력)
문자열의 길이
-
반환값
오른쪽 공백이 제거된 문자열의 포인터가 반환된다.
-
예제
char STR[] = “ abcDEF 1. 23hljk ”; char STR_RTRIM[] = “ abcDEF 1. 23hljk”; char SPACE[] = “ “ char STR_EMPTY[] = “”; strncpy(ostr, pfmStrnRTrim(STR, sizeof(STR)), sizeof(STR)); /* ostr == STR_RTRIM */ strncpy(ostr, pfmStrnRTrim(SPACE, sizeof(SPACE)), sizeof(SPACE)); /* ostr == STR_EMPTY */
28. pfmStrTrim
NULL 종료 문자열의 좌우 공백을 제거한다.
-
프로토타입
char * pfmStrTrim(char *str);
-
파라미터
파라미터명 설명 *str (입출력)
체크할 문자열
-
반환값
좌우 공백이 제거된 문자열의 포인터가 반환된다.
-
예제
char STR[] = “ abcDEF 1. 23hljk ”; char STR_TRIM[] = “abcDEF 1. 23hljk”; char SPACE[] = “ “ char STR_EMPTY[] = “”; strncpy(ostr, pfmStrTrim(STR), sizeof(STR)); /* ostr == STR_TRIM */ strncpy(ostr, pfmStrTrim(SPACE), sizeof(SPACE)); /* ostr == STR_EMPTY */
29. pfmStrnTrim
길이 문자열의 좌우 공백을 제거한다.
-
프로토타입
char * pfmStrnTrim(char *str, long len);
-
파라미터
파라미터명 설명 *str (입출력)
체크할 문자열
len (입력)
문자열의 길이
-
반환값
좌우 공백이 제거된 문자열의 포인터가 반환된다.
-
예제
char STR[] = “ abcDEF 1. 23hljk ”; char STR_TRIM[] = “abcDEF 1. 23hljk”; char SPACE[] = “ “ char STR_EMPTY[] = “”; strncpy(ostr, pfmStrnTrim(STR, sizeof(STR)), sizeof(STR)); /* ostr == STR_TRIM */ strncpy(ostr, pfmStrnTrim(SPACE, sizeof(SPACE)), sizeof(SPACE)); /* ostr == STR_EMPTY */
30. pfmStrRemoveSpace
NULL 종료 문자열의 space(0x20)를 제거한다.
-
프로토타입
char * pfmStrRemoveSpace(char *str);
-
파라미터
파라미터명 설명 *str (입출력)
체크할 문자열
-
반환값
space(0x20)가 제거된 문자열의 포인터가 반환된다.
-
예제
char str[] = “ A B C ”; pfmStrRemoveSpace(str); /* str == “ABC” */
31. pfmStrnRemoveSpace
길이 문자열의 space(0x20)를 제거한다.
-
프로토타입
char * pfmStrnRemoveSpace(char *str, long len);
-
파라미터
파라미터명 설명 *str (입출력)
체크할 문자열
len (입력)
문자열의 길이
-
반환값
space(0x20)가 제거된 문자열의 포인터가 반환된다.
-
예제
char str[] = “ A B C ”; char str2[] = “ A B C ”; pfmStrnRemoveSpace(str, 10); /* str == “ABC” */ pfmStrnRemoveSpace(str2, 3); /* str2 == “A” */
32. pfmStrCmpLTrim
두 문자열의 왼쪽 공백을 제거한 후 결과를 비교한다.
-
프로토타입
long pfmStrCmpLTrim(char *str1, char *str2, long len);
-
파라미터
파라미터명 설명 *str1 (입력)
체크할 첫 번째 문자열
*str2 (입력)
체크할 두 번째 문자열
len (입력)
비교할 길이
-
반환값
두 문자열의 왼쪽 공백을 제거한 후 결과가 같으면 0을 반환한다. 결과가 다를 경우 두 문자열을 비교하여 처음으로 다른 부분의 ASCII 값을 비교한다. 첫 번째 문자열의 ASCII 값이 큰 경우 양수를 두 번째 문자열의 ASCII 값이 큰 경우 음수를 반환한다.
-
예제
rc = pfmStrCmpLTrim(“ TEST”, “TEST”, 4); /* “TEST”와 “TEST”를 비교: rc == 0 */ rc = pfmStrCmpLTrim(“ 123”, “ 234”, 3); /* “123”와 “234”를 비교: rc < 0 */
33. pfmStrCmpRTrim
두 문자열의 오른쪽 공백을 제거한 후 결과를 비교한다.
-
프로토타입
long pfmStrCmpRTrim(char *str1, char *str2, long len);
-
파라미터
파라미터명 설명 *str1 (입력)
체크할 첫 번째 문자열
*str2 (입력)
체크할 두 번째 문자열
len (입력)
비교할 길이
-
반환값
두 문자열의 오른쪽 공백을 제거한 후 결과가 같으면 0을 반환한다. 결과가 다를 경우 두 문자열을 비교하여 처음으로 다른 부분의 ASCII 값을 비교한다. 첫 번째 문자열의 ASCII 값이 큰 경우 양수를 두 번째 문자열의 ASCII 값이 큰 경우 음수를 반환한다.
-
예제
rc = pfmStrCmpRTrim(“TEST”, “TEST ”, 4); /* “TEST”와 “TEST”를 비교: rc == 0 */ rc = pfmStrCmpRTrim(“123 ”, “234 ”, 3); /* “123”와 “234”를 비교: rc < 0 */
34. pfmStrCmpTrim
두 문자열의 좌우 공백을 제거한 후 결과를 비교한다.
-
프로토타입
long pfmStrCmpTrim(char *str1, char *str2, long len);
-
파라미터
파라미터명 설명 *str1 (입력)
체크할 첫 번째 문자열
*str2 (입력)
체크할 두 번째 문자열
len (입력)
비교할 길이
-
반환값
두 문자열의 좌우 공백을 제거한 후 결과가 같으면 0을 반환한다. 결과가 다를 경우 두 문자열을 비교하여 처음으로 다른 부분의 ASCII 값을 비교한다. 첫 번째 문자열의 ASCII 값이 큰 경우 양수를 두 번째 문자열의 ASCII 값이 큰 경우 음수를 반환한다.
-
예제
rc = pfmStrCmpTrim(“ TEST”, “TEST ”, 10); /* “TEST”와 “TEST”를 비교: rc == 0 */ rc = pfmStrCmpTrim(“ 123 ”, “ 234 ”, 10); /* “123”와 “234”를 비교: rc < 0 */
35. pfmStrCmpRemoveSpace
두 문자열의 space(0x20)를 제거한 후 결과를 비교한다.
-
프로토타입
long pfmStrCmpRemoveSpace(char *str1, char *str2, long len);
-
파라미터
파라미터명 설명 *str1 (입력)
체크할 첫 번째 문자열
*str2 (입력)
체크할 두 번째 문자열
len (입력)
비교할 길이
-
반환값
두 문자열의 space(0x20)를 제거한 후 결과가 같으면 0을 반환한다. 결과가 다를 경우 두 문자열을 비교하여 처음으로 다른 부분의 ASCII 값을 비교한다. 첫 번째 문자열의 ASCII 값이 큰 경우 양수를 두 번째 문자열의 ASCII 값이 큰 경우 음수를 반환한다.
-
예제
char str1[12 + 1] = “20051028”; char str2[12 + 1] = “2005 10 28”; if(pfmStrCmpRemoveSpace(str1, str2, 12) == 0) { PFM_DBG(“두 날짜가 같습니다.”); }
36. pfmStrCpyRPadSpace
원하는 길이만큼 문자열을 복사하고 끝에 남는 부분은 space(0x20)로 채운다.
-
프로토타입
long pfmStrCpyRPadSpace(char *dest, char *src, long len);
-
파라미터
파라미터명 설명 *dest (출력)
결과 문자열
*src (입력)
복사할 원본 문자열
len (입력)
복사할 길이
-
반환값
반환값 설명 RC_NRM
정상적으로 처리된 경우
RC_ERR
정상적으로 처리되지 않은 경우
-
예제
char dest[9]; char src[] = “abcde”; long rc; rc = pfmStrCpyRPadSpace(dest, src, sizeof(dest)); if(rc == RC_ERR) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* dest == “abcde ” */
37. pfmStrCpyRPadZero
원하는 길이만큼 문자열을 복사하고 오른쪽 정렬한다. 앞에 남는 부분은 0으로 채운다.
-
프로토타입
long pfmStrCpyRPadZero(char *dest, char *src, long len);
-
파라미터
파라미터명 설명 *dest (출력)
결과 문자열
*src (입력)
복사할 원본 문자열
len (입력)
복사할 길이
-
반환값
반환값 설명 RC_NRM
정상적으로 처리된 경우
RC_ERR
정상적으로 처리되지 않은 경우
-
예제
char dest[9]; char src[] = ”12345”; long rc; memset(dest, 0x00, sizeof(dest)); rc = pfmStrCpyRPadZero(dest, src, sizeof(dest)); if(rc == RC_ERR) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* dest == “000012345” */
38. pfmStrCpySkip
원본 문자열에서 특정 문자를 제거한 후 다른 문자열로 복사한다.
-
프로토타입
long pfmStrCpySkip(char *dest, char *src, char toskip, long dest_len);
-
파라미터
파라미터명 설명 *dest (출력)
결과 문자열
*src (입력)
복사할 원본 문자열
toskip (입력)
제거할 문자
dest_len (입력)
결과 문자열의 길이
-
반환값
반환값 설명 RC_NRM
정상적으로 처리된 경우
RC_ERR
정상적으로 처리되지 않은 경우
-
예제
char ostr[32]; long rc; rc = pfmStrCpySkip(ostr, “123kyj456”, ‘k’, 9); /* ostr == “123yj456” */ rc = pfmStrCpySkip(ostr, “123kyj456”, ‘k’, 5); /* rc == RC_ERR 결과 문자열보다 Buffer 크기가 작으면 에러 */ rc = pfmStrCpySkip(ostr, “a/b/c/d/e/f/g/”, ‘/’, 32); /* ostr == “abcdefg” */ rc = pfmStrCpySkip(ostr, “a-b-c-d-e-f-g-”, ‘-’, 32); /* ostr == “abcdefg” */ if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
39. pfmStrExtractDigitN
NULL 종료 문자열에서 정수만 추출하여 정수형 문자열을 반환한다.
-
프로토타입
long pfmStrExtractDigitN(char *dest, long dest_len, char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
정수형 문자열
dest_len (입력)
정수형 문자열의 길이
*src (입력)
NULL 종료 문자열
src_len (입력)
NULL 종료 문자열의 길이
-
반환값
반환값 설명 RC_NRM
정상적으로 처리된 경우
RC_ERR
정상적으로 처리되지 않은 경우
-
예제
char src[] = “345 67/33.8-4890/”; char dest[100]; long rc; rc = pfmStrExtractDigitN(dest, 100, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* 정상 Conversion된 경우 : dest = “345673383890” */
40. pfmStrCmpMulti
입력된 여러 문자열이 기준 문자열과 같은지 비교한다.
-
프로토타입
long pfmStrCmpMulti(char *str, …);
-
파라미터
파라미터명 설명 *str (입력)
기준 문자열
… (입력)
비교대상 문자열들
(마지막 파라미터임을 알리기 위해 빈 문자열(“”)을 사용한다.)
-
반환값
기준 문자열과 일치하는 문자열을 찾았을 경우 일치하는 문자열의 위치를 일치하는 문자열을 찾지 못한 경우 0을 반환한다.
-
예제
char key[] = “test_n”; long rc; rc = pfmStrCmpMulti (key, “test”, “n”, “asdf”, “ccsd”, “test_n”, “”); if(rc != 1) { return RC_ERR; }
41. pfmStrGetIndex
N개의 NULL 종료 문자열 중 일치하는 문자열을 검색하여 일치 문자열의 위치를 반환한다.
-
프로토타입
long pfmStrGetIndex(long cnt, char *str, …);
-
파라미터
파라미터명 설명 cnt (입력)
비교 대상 문자열의 개수
*str (입력)
기준 문자열
… (입력)
비교대상 문자열들
-
반환값
기준 문자열과 일치하는 문자열을 찾지 못한 경우 0을 일치하는 문자열을 찾은 경우 일치하는 문자열이 위치한 번호(1,2, …., cnt)를 반환한다.
-
예제
rc = pfmStrGetIndex(4, “a”, “a”, “ab”, “abc”, “abcd”); /* rc == 1 */ rc = pfmStrGetIndex(4, “ab”, “a”, “ab”, “abc”, “abcd”); /* rc == 2 */ rc = pfmStrGetIndex(4, “abc”, “a”, “ab”, “abc”, “abcd”); /* rc == 3 */ rc = pfmStrGetIndex(4, “abcd”, “a”, “ab”, “abc”, “abcd”); /* rc == 4 */ rc = pfmStrGetIndex(4, “abcde”, “a”, “ab”, “abc”, “abcd”); /* rc == 0 */
42. pfmToLower
입력된 NULL 종료 문자열을 소문자로 변환한다. 문자열의 길이와 상관없이 모두 변환한다.
-
프로토타입
char * pfmToLower(char *str);
-
파라미터
파라미터명 설명 *str (입출력)
변환할 문자열
-
반환값
변환된 문자열 포인터를 *str에 반환한다.
-
예제
char istr[256], ostr[256]; char STR_MIXED[] = “AaBbCc123Dd EeFf”; char STR_LOWER[] = “aabbcc123dd eeff”; strncpy(istr, STR_MIXED, strlen(STR_MIXED)); strncpy(ostr, pfmToLower(istr), strlen(STR_LOWER)); /* istr과 ostr 모두 STR_LOWER가 된다 */ strncpy(ostr, pfmToLower(“ABCDEFG”), 7); /* ostr은 “abcdefg”가 된다 */
43. pfmToLowern
입력된 길이 문자열을 소문자로 변환한다.
-
프로토타입
char * pfmToLowern(char *str, long len);
-
파라미터
파라미터명 설명 *str (입출력)
변환할 문자열
len (입력)
문자열의 길이
-
반환값
변환된 문자열 포인터를 *str에 반환한다.
-
예제
char istr[256]; char STR_MIXED1[] = “AAABBBB”; char STR_LOWER1[] = “aaaBBBB”; char STR_MIXED3[] = “AAABBBB”; pfmToLowern(STR_MIXED1, 3); /* STR_MIXED1는 STR_LOWER1과 같아진다. */ strncpy(istr, pfmToLowern(STR_MIXED3, 3), 7); /* STR_MIXED3를 “aaaBBBB”로 변환한 뒤 변환된 문자열을 istr로 복사 */
44. pfmUpper
입력된 NULL 종료 문자열을 대문자로 변환한다. 문자열의 길이와 상관없이 모두 변환한다.
-
프로토타입
char * pfmToUpper(char *str);
-
파라미터
파라미터명 설명 *str (입출력)
변환할 문자열
-
반환값
변환된 문자열 포인터를 *str에 반환한다.
-
예제
char istr[BUF_SIZE], ostr[BUF_SIZE]; char STR_MIXED[] = “AaBbCc123Dd EeFf”; char STR_UPPER[] = “AABBCC123DD EEFF”; strncpy(istr, STR_MIXED, strlen(STR_MIXED)); strncpy(ostr, pfmStrToUpper(istr), strlen(STR_MIXED)); /* istr과 ostr 모두 STR_UPPER가 된다 */ strncpy(ostr, pfmStrToUpper(“abcdefg”), 7); /* ostr은 “ABCDEFG”가 된다 */
45. pfmToUppern
입력된 길이 문자열을 대문자로 변환한다.
-
프로토타입
char * pfmToUppern(char *str, long len);
-
파라미터
파라미터명 설명 *str (입출력)
변환할 문자열
len (입력)
문자열의 길이
-
반환값
변환된 문자열 포인터를 *str에 반환한다.
-
예제
char istr[256]; char STR_MIXED1[] = “aaaBBBB”; char STR_LOWER1[] = “AAABBBB”; char STR_MIXED3[] = “aaaBBBB”; pfmToUppern(STR_MIXED1, 3); /* STR_MIXED1는 STR_LOWER1과 같아진다. */ strncpy(istr, pfmToUppern(STR_MIXED3, 3), 7); /* STR_MIXED3를 “AAABBBB”로 변환한 뒤 변환된 문자열을 istr로 복사 */
46. pfmAscToInt
입력된 문자열을 Int형으로 변환한다.
-
프로토타입
int pfmAscToInt(char *ptr, long len);
-
파라미터
파라미터명 설명 *ptr (입력)
변환할 문자열
len (입력)
문자열의 길이
-
반환값
변환된 Int 값을 반환한다.
-
예제
int num; num = pfmAscToInt(“1234”, 4); /* num == 1234 */ num = pfmAscToInt(“1234”, 3); /* num == 123 */
47. pfmAscToLong
입력된 문자열을 Long형으로 변환한다.
-
프로토타입
long pfmAscToLong(char *ptr, long len);
-
파라미터
파라미터명 설명 *ptr (입력)
변환할 문자열
len (입력)
문자열의 길이
-
반환값
변환된 Long 값을 반환한다.
-
예제
long lnum; lnum = pfmAscToLong(“1234567890”, 10); /* lnum == 1234567890 */ lnum = pfmAscToLong(“1234567890”, 6); /* lnum == 123456 */
48. pfmStrToLong
NULL 종료 문자열을 Long형으로 변환한다.
-
프로토타입
long pfmStrToLong(long *num, char *str);
-
파라미터
파라미터명 설명 *num (출력)
변환된 Long형 값의 포인터
*str (입력)
변환할 문자열
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char str[] = “2315”; long num, rc; rc = pfmStrToLong(&num, str); /* num == 2315 */ if(rc == RC_ERR) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
49. pfmStrnToLong
길이 문자열을 Long형으로 변환한다.
-
프로토타입
long pfmStrnToLong(long *num, char *str, long len);
-
파라미터
파라미터명 설명 *num (출력)
변환된 Long형 값의 포인터
*str (입력)
변환할 문자열
len (입력)
변환할 문자열의 길이
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char str[] = “2315”; long num, rc; rc = pfmStrnToLong(&num, str, 4); /* num == 2315 */ rc = pfmStrnToLong(&num, str, 3); /* num == 231 */ rc = pfmStrnToLong(&num, str, 2); /* num == 23 */ rc = pfmStrnToLong(&num, “123a”, 4); if(rc == RC_ERR) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
50. pfmLongToStrn
Long형 숫자를 문자열로 변환한다.
-
프로토타입
long pfmLongToStrn(char *str, long num, long buf_size);
-
파라미터
파라미터명 설명 *str (출력)
변환된 문자열
num (입력)
Long형 숫자
buf_size (입력)
변환된 문자열의 버퍼 크기
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
변환된 문자열이 버퍼 크기를 넘는 경우
-
예제
rc = pfmLongToStrn(ostr, 123456, 10); /* ostr == “123456” */ rc = pfmLongToStrn(ostr, 12345678, 10); /* ostr == “12345678” */ rc = pfmLongToStrn(ostr, 12345678, 6); /* rc == RC_ERR */ if(rc == RC_ERR) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
51. pfmLongToStrnLpadZero
Long형 숫자를 문자열로 변환한 후 오른쪽 정렬하여 공백을 0으로 채운다.
-
프로토타입
long pfmLongToStrnLpadZero(char *str, long num, long buf_size);
-
파라미터
파라미터명 설명 *str (출력)
변환된 문자열
num (입력)
Long형 숫자
buf_size (입력)
변환된 문자열의 길이
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
변환된 문자열이 버퍼 크기를 넘는 경우
-
예제
rc = pfmLongToStrnLpadZero(ostr, 123456, 10); /* rc == RC_NRM, ostr == “0000123456” */ rc = pfmLongToStrnLpadZero(ostr, 12345678, 10); /* rc == RC_NRM, ostr == “0012345678” */ rc = pfmLongToStrnLpadZero(ostr, 12345678, 6); /* rc == RC_ERR */ if(rc == RC_ERR) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
52. pfmStrAddLong
입력된 문자열에 Long형 정수를 더한 후 문자열로 변환한다.
-
프로토타입
long pfmStrAddLong(char *str, long num);
-
파라미터
파라미터명 설명 *str (입출력)
입출력 문자열
num (입력)
덧셈할 Long형 정수
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
덧셈한 후 문자열의 길이가 기존 문자열 길이보다 길 경우
-
예제
char str[32] = “100”; long num = 11; long rc = RC_NRM; rc = pfmStrAddLong(str, num); /* str == “111” */ strncpy(str, “999”, 3); rc = pfmStrAddLong(str, 10); /* 999 + 10 == 1009 */ /* rc == RC_ERR, strlen(“999”) < strlen(“1009”) 이므로 */ strncpy(str, “1”, 2); rc = pfmStrAddLong(str, -3); /* 1 + (-3) == -2 */ /* rc == RC_ERR, strlen(“1”) < strlen(“-3”) 이므로 */ strncpy(str, “-999”, 4); rc = pfmStrAddLong(str, 1000); /* -999 + 1000 == 1 */ /* rc == “0001”, 앞 자리는 0이므로 padding */ if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
53. pfmStrSubLong
입력된 문자열에서 Long형 정수를 뺀 후 문자열로 변환한다.
-
프로토타입
long pfmStrSubLong(char *str, long num);
-
파라미터
파라미터명 설명 *str (입출력)
입출력 문자열
num (입력)
뺄셈할 Long형 정수
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
뺄셈한 후 문자열의 길이가 기존 문자열 길이보다 길 경우
-
예제
char str[32] = “100”; long num = 11; long rc = RC_NRM; rc = pfmStrSubLong(str, num); /* str == “089”, 앞 자리는 0으로 padding */ strncpy(str, “40”, 2); rc = pfmStrSubLong(str, 77); /* 40 - 77 == -37 */ /* rc == RC_ERR, strlen(“40”) < strlen(“-37”) 이므로 */ strncpy(str, “10000”, 5); rc = pfmStrSubLong(str, 9900); /* 10000 - 9900 == 100 */ /* rc == “00100”, 앞 자리는 0으로 padding */ if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
54. pfmStrToHex
NULL 종료 문자열을 hexadecimal 형태로 변환한다.
-
프로토타입
long pfmStrToHex(char *hex, long hex_len, char *str, long in_len);
-
파라미터
파라미터명 설명 *hex (출력)
Hexadecimal 형태로 변환된 문자열
hex_len (입력)
변환된 문자열의 길이
*str (입력)
변환할 문자열
in_len (입력)
변환할 문자열의 길이
변환할 문자열과 변환된 문자열의 주소가 달라야 한다.
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char hex[32]; long rc; rc = pfmStrToHex(hex, 32, “jkfl43a-gg”, 32); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* 6a 6b 66 6c 34 33 61 2d 67 67 */
55. pfmStrAscToEbc
ASCII 문자열을 EBCDIC형으로 변환한다.
-
프로토타입
long pfmStrAscToEbc (unsigned char *dest, unsigned char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
변환된 문자열
*src (입력)
변환될 문자열
src_len (입력)
변환될 문자열의 길이
변환할 문자열과 변환된 문자열의 주소가 달라야 한다.
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “abcdefg”; char dest[20 + 1]; long len; rc = pfmStrAscToEbc(desc, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
56. pfmStrEbcToAsc
EBCDIC 문자열을 ASCII형으로 변환한다.
-
프로토타입
long pfmStrEbcToAsc(unsigned char *dest, unsigned char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
변환된 문자열
*src (입력)
변환될 문자열
src_len (입력)
변환될 문자열의 길이
변환할 문자열과 변환된 문자열의 주소가 달라야 한다.
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “\201\202\203\204\205\206\207”; char dest[20 + 1]; rc = pfmStrEbcToAsc(dest, 20, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
57. pfmStrEngToKsc
영문 대응 코드를 KSC5601형으로 변환한다.
-
프로토타입
long pfmStrEngToKsc(unsigned char *dest, unsigned char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
변환된 문자열
*src (입력)
변환될 문자열
src_len (입력)
변환될 문자열의 길이
변환할 문자열과 변환된 문자열의 주소가 달라야 한다.
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “eogksalsrnr”; char dest[20 + 1]; rc = pfmStrEngToKsc(desc, 20, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
58. pfmStrKscToEng
KSC5601 문자열을 영문 대응 코드로 변환한다.
-
프로토타입
long pfmStrKscToEng(unsigned char *dest, unsigned char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
변환된 문자열
*src (입력)
변환될 문자열
src_len (입력)
변환될 문자열의 길이
변환할 문자열과 변환된 문자열의 주소가 달라야 한다.
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “대한민국”; char dest[20 + 1]; rc = pfmStrKscToEng(desc, 20, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
59. pfmStrKscToIbm
KSC5601 문자열을 IBM 2Bytes 조합형 코드로 변환한다.
-
프로토타입
long pfmStrKscToIbm(unsigned char *dest, unsigned char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
변환된 문자열
*src (입력)
변환될 문자열
src_len (입력)
변환될 문자열의 길이
변환할 문자열과 변환된 문자열의 주소가 달라야 한다.
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “대한민국”; char dest[20 + 1]; rc = pfmStrKscToIbm(desc, 20, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
60. pfmStrIbmToKsc
IBM 2Bytes 조합형 코드를 KSC5601 문자열로 변환한다.
-
프로토타입
long pfmStrIbmToKsc(unsigned char *dest, unsigned char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
변환된 문자열
*src (입력)
변환될 문자열
src_len (입력)
변환될 문자열의 길이
변환할 문자열과 변환된 문자열의 주소가 달라야 한다.
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “대한민국”; char dest[20 + 1]; rc = pfmStrIbmToKsc(desc, 20, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
61. pfmStrKscToSosi
KS 2Bytes 완성형 한글 문자열을 IBM SOSI 한글 코드로 변환한다.
-
프로토타입
long pfmStrKscToSosi(char *dest, long dest_len, char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
변환된 문자열
dest_len (입력)
변환된 문자열의 길이
*src (입력)
변환될 문자열
src_len (입력)
변환될 문자열의 길이
변환할 문자열과 변환된 문자열의 주소가 달라야 한다.
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “ 오대한 민국 abc defg”; char dest[100]; rc = pfmStrKscToSosi(dest, 100, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* 정상 Conversion된 경우: dest = 0x0e + “오 대한민국” + 0x0f + “ abc defg” */
62. pfmStrSosiToKsc
IBM SOSI 한글 코드를 KS 2Bytes 완성형 한글 문자열로 변환한다.
-
프로토타입
long pfmStrSosiToKsc(char *dest, long dest_len, char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
변환된 문자열
dest_len (입력)
변환된 문자열의 길이
*src (입력)
변환될 문자열
src_len (입력)
변환될 문자열의 길이
변환할 문자열과 변환된 문자열의 주소가 달라야 한다.
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “ 오 대한민국 abc defg”; char dest[100]; char dest2[100]; rc = pfmStrSosiToKsc(dest, 100, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } rc = pfmStrSosiToKsc(dest2, 100, dest, strlen(dest)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* 정상 Conversion된 경우 : dest = “오 대한민국 abc defg” */
63. pfmStrKscConvEng
한글 문자열을 영문 문자열로 변환한다.
-
프로토타입
long pfmStrKscConvEng(char *dest, long dest_len, char *src, long src_len, long conv_flag);
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char dest[256]; char *src = “홍길동”; rc = pfmStrKscConvEng(dest, sizeof(dest), src, strlen(src), PFM_KSC_CONV_ENG_DEFAULT); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* dest = KIMGILDONG : 일반적인 표기법인 경우 */ rc = pfmStrKscConvEng(dest, sizeof(dest), src, strlen(src), PFM_KSC_CONV_ENG_ROMAN); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* dest = GIMGILDONG : 로마식 표기법 */
64. pfmStrKscToRemoveSpace
KSC5601 한글 문자열에서 space를 제거한다.
-
프로토타입
long pfmStrKscToRemoveSpace(char *dest, long dest_len, char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
변환된 문자열
dest_len (입력)
변환된 문자열의 길이
*src (입력)
변환될 문자열
src_len (입력)
변환될 문자열의 길이
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “대 한 민 국”; char dest[20 + 1]; rc = pfmStrKscToRemoveSpace(desc, 20, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
65. pfmStrKscToTwoBytes
문자열에 포함된 1Byte 문자(알파벳, 숫자, 기호 등)를 KSC5601 2Bytes형으로 변환한다. (반각문자를 전각문자로 변환)
-
프로토타입
long pfmStrKscToTwoBytes(char *dest, long dest_len, char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
변환된 문자열
dest_len (입력)
변환된 문자열의 길이
*src (입력)
변환될 문자열
src_len (입력)
변환될 문자열의 길이
변환할 문자열과 변환된 문자열의 주소가 달라야 한다. 변환 후 남은 공백은 KSC5601 space(0xa1a1)로 채워진다. 따라서 변환된 문자열의 길이가 버퍼 크기와 같으면 NULL 종료가 불가능하므로 "dest_len =scr_len *2+1"로 설정한다.
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “대 한 민 국”; char dest[20 + 1]; bzero(dest, sizeof(dest)); rc = pfmStrKscToTwoBytes(desc, 20, src, 11); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
66. pfmStrKscToOneByte
문자열에 포함된 KSC5601 2Byte형의 문자(알파벳, 숫자, 기호 등)를 1Byte형으로 변환한다. 한글 및 한자 등 1Byte형으로 표현할 수 없는 문자는 제외된다. (전각문자를 반각문자로 변환)
-
프로토타입
long pfmStrKscToOneByte(char *dest, long dest_len, char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
변환된 문자열
dest_len (입력)
변환된 문자열의 길이
*src (입력)
변환될 문자열
src_len (입력)
변환될 문자열의 길이
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “대 한 민 국”; char dest[20 + 1]; bzero(dest, sizeof(dest)); rc = pfmStrKscToOneByte(desc, 20, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
67. pfmStrnConv
문자열을 입력된 방식으로 변환한다.
-
프로토타입
long pfmStrnConv(char *src, long len, long type);
-
파라미터
파라미터명 설명 *src (입출력)
변환될 문자열
len (입력)
변환될 문자열의 길이
type (입력)
변환 방법
-
MPFM_STRNCONV_CNTL2SP : 변환할 길이 문자열의 제어 문자를 space(0x20)로 변환
-
MPFM_STRNCONV_NULL2SP : 변환할 길이 문자열의 NULL 문자를 space(0x20)로 변환
-
MPFM_STRNCONV_ONLY_ALNUM_UPPER : 길이 문자열 중 알파벳과 숫자만 대문자로 변환
-
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char str[] = { ‘A’, ‘b’, 0x12, 0x13, ‘C’, 0x00 }; rc = pfmStrnConv(str, strlen(str), MPFM_STRNCONV_CNTL2SP); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* str = {‘A’, ‘b’, 0x12, 0x13, ‘C’, 0x00 }; */ /*-------------------------------------- */ char str[] = { ’A’, ’b’, 0x00, ’C’, 0x00, 0x00 }; rc = pfmStrnConv(str, 5, MPFM_STRNCONV_NULL2SP); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* str = {‘A’, ‘b’, 0x20, ‘C’, 0x20, 0x00 }; */ /*-------------------------------------- */ char str[] = “2005년 11월 02일 Wed”; rc = pfmStrnConv(str, 5, MPFM_STRNCONV_ONLY_ALNUM_UPPER); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; }
68. pfmStrnCpyConv
문자열을 입력된 방식으로 변환한 후 변환 결과를 다른 문자열로 복사한다.
-
프로토타입
long pfmStrnCpyConv(char *dest, char *src, long len, long type);
-
파라미터
파라미터명 설명 *dest (출력)
변환 후 복사된 문자열
*src (입력)
변환될 문자열
len (입력)
변환될 문자열의 길이
type (입력)
변환 방법
-
MPFM_STRNCONV_CNTL2SP : 변환할 길이 문자열의 제어 문자를 space(0x20)로 변환
-
MPFM_STRNCONV_NULL2SP : 변환할 길이 문자열의 NULL 문자를 space(0x20)로 변환
-
MPFM_STRNCONV_ONLY_ALNUM_UPPER : 길이 문자열 중 알파벳과 숫자만 대문자로 변환
-
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char str[] = { ‘A’, ‘b’, 0x12, 0x13, ‘C’, 0x00 }; char buf[10 + 1]; rc = pfmStrnCopyConv(buf, str, 10, MPFM_STRNCONV_CNTL2SP); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* buf = { ‘A’, ‘b’, 0x20, 0x20, ‘C’, 0x00 }; */ /*-------------------------------------- */ char str[] = { ’A’, ’b’, 0x00, ’C’, 0x00, 0x00 }; char buf[10 + 1]; rc = pfmStrnConv(buf, str, 10, MPFM_STRNCONV_NULL2SP); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* str = { ‘A’, ‘b’, 0x20, ‘C’, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00 }; */ /*-------------------------------------- */ char str[] = “2005년 11월 02일 Wed”; char buf[10 + 1]; rc = pfmStrnConv(buf, str, 10, MPFM_STRNCONV_ONLY_ALNUM_UPPER); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } /* buf = “20051102Wed” */
69. pfmStrRemoveBrokenKorean
입력 문자열에서 깨진 한글 코드를 제거한다.
-
프로토타입
long pfmStrRemoveBrokenKorean(char *dest, long dest_len, char *src, long src_len);
-
파라미터
파라미터명 설명 *dest (출력)
깨진 한글이 제거된 문자열
dest_len (입력)
깨진 한글이 제거된 문자열의 길이
*src (입력)
입력 문자열
src_len (입력)
입력 문자열의 길이
-
반환값
반환값 설명 RC_NRM
정상적으로 변환된 경우
RC_ERR
정상적으로 변환되지 않은 경우
-
예제
char src[] = “중간에ㄺ 깨짐”; char buf[20 + 1]; rc = pfmStrRemoveBrokenKorean(buf, 20, src, strlen(src)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); return RC_ERR; } PFM_ERR("[%s]", buf ); /* buf = “중간에 깨짐”*/
70. pfmStrIndexOfBrokenKorean
입력 문자열에서 한글 코드가 깨지기 시작한 위치를 알려준다.
-
프로토타입
long pfmStrIndexOfBrokenKorean(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
입력 NULL 종료 문자열
len (입력)
입력 NULL 종료 문자열의 길이
-
반환값
한글 코드가 깨지기 시작한 위치를 반환한다.
-
예제
char str[100 + 1] = “KOREA에오신걸ㄺ환영합니다”; long broken_pos; broken_pos = pfmStrIndexOfBrokenKorean(str, strlen(str)); /* broken_pos = 13 */
71. pfmStrRemoveBrokenKsc
문자 구분 값에 깨진 문자는 삭제하고 한글, 전각문자를 표시한다. (pfmStrRemoveBrokenKorean를 보완한 API)
-
프로토타입
long pfmStrRemoveBrokenKsc(char *dest, long dest_len, char *src, long src_len, long del_byte, char *option)
-
파라미터
파라미터명 설명 *dest (출력)
출력 문자열
dest_len (출력)
출력 문자열 길이
*src (입력)
입력 문자열
src_len (입력)
적용 대상 문자열 길이
del_byte (입력)
1Byte 단위, 2Byte 단위 문자로 문자 Check (1Byte단위 일때 - 삭제된 문자를 0x20, 2Byte단위 일때 - 삭제된 문자를 0xA1 으로 처리)
option (입력)
문자 구분
-
K : 한글음절 허용
-
k : 한글낱자허용
-
A : 전각 대문자
-
a : 전각 소문자
-
N : 전각 숫자
-
C : Ascii 전각
-
G : 그리스 문자
-
-
반환값
한글 코드가 깨지기 시작한 위치를 반환한다.
-
예제
{ char src[256]; char dst[256]; char opt[256]; STRCPY(src, "가나,ㄱㄴㅏㅑ,ABYZ,abyz,0189,!"} ̄, 、。,℡ " ); PFM_ERR("src=[%d:%s]", strlen(src), src); /* 삭제단위 1바이트, DEFAULT 옵션 적용 */ PFM_TRY( pfmStrRemoveBrokenKsc( dst, sizeof(dst)-1, src, strlen(src), 1, NULL ) ); PFM_ERR("dst=[%d:%s]", strlen(dst), dst); /*dst=[60:가나, 엘 ,ABYZ,abyz,0189,!"} ̄, , ] "엘"은 "ㄱㄴ"사이값(1, 2번 Array)이 표시된 것임 - 1Byte단위 Check옵션을 사용 했기 때문 */ /* 여기서부터 삭제 단위 2바이트.. */ /* NULL = DEFAULT = "KC" 옵션 적용 */ PFM_TRY( pfmStrRemoveBrokenKsc( dst, sizeof(dst)-1, src, strlen(src), 2, NULL ) ); PFM_ERR("dst=[%d:%s], opt=%s", strlen(dst), dst, "NULL" ); /*dst=[60:가나, ,ABYZ,abyz,0189,!"} ̄, , ], opt=NULL*/ /* EMPTY STRING = DEFAULT = "KC" 옵션 적용 */ PFM_TRY( pfmStrRemoveBrokenKsc( dst, sizeof(dst)-1, src, strlen(src), 2, "" ) ); PFM_ERR("dst=[%d:%s], opt=%s", strlen(dst), dst, "" ); /*dst=[60:가나, ,ABYZ,abyz,0189,!"} ̄, , ], opt=*/ /* "K" 한글 음절만 허용 */ PFM_TRY( pfmStrRemoveBrokenKsc( dst, sizeof(dst)-1, src, strlen(src), 2, "K" ) ); PFM_ERR("dst=[%d:%s], opt=%s", strlen(dst), dst, "K" ); /*dst=[60:가나, , , , , , , ], opt=K*/ /* "k" 한글 낱자만 허용 */ PFM_TRY( pfmStrRemoveBrokenKsc( dst, sizeof(dst)-1, src, strlen(src), 2, "k" ) ); PFM_ERR("dst=[%d:%s], opt=%s", strlen(dst), dst, "k" ); /*dst=[60: ,ㄱㄴㅏㅑ, , , , , , ], opt=k*/ /* 알파벳 전각 대문자만 허용 */ PFM_TRY( pfmStrRemoveBrokenKsc( dst, sizeof(dst)-1, src, strlen(src), 2, "A" ) ); PFM_ERR("dst=[%d:%s], opt=%s", strlen(dst), dst, "A" ); /*dst=[60: , ,ABYZ, , , , , ], opt=A*/ /* 알파벳 전각 소문자만 허용 */ PFM_TRY( pfmStrRemoveBrokenKsc( dst, sizeof(dst)-1, src, strlen(src), 2, "a" ) ); PFM_ERR("dst=[%d:%s], opt=%s", strlen(dst), dst, "a" ); /*dst=[60: , , ,abyz, , , , ], opt=a*/ /* 전각 숫자만 허용 */ PFM_TRY( pfmStrRemoveBrokenKsc( dst, sizeof(dst)-1, src, strlen(src), 2, "N" ) ); PFM_ERR("dst=[%d:%s], opt=%s", strlen(dst), dst, "N" ); /*dst=[60: , , , ,0189, , , ], opt=N*/ /* ASCII 문자에 대응하는 전각 문자들만 허용 */ PFM_TRY( pfmStrRemoveBrokenKsc( dst, sizeof(dst)-1, src, strlen(src), 2, "C" ) ); PFM_ERR("dst=[%d:%s], opt=%s", strlen(dst), dst, "C" ); /*dst=[60: , ,ABYZ,abyz,0189,!"} ̄, , ], opt=C*/ /* 그래픽 문자만 허용 */ PFM_TRY( pfmStrRemoveBrokenKsc( dst, sizeof(dst)-1, src, strlen(src), 2, "G" ) ); PFM_ERR("dst=[%d:%s], opt=%s", strlen(dst), dst, "G" ); /*dst=[60: , , , , , , 、。,℡ ], opt=G*/ /* 복합 설정 : 한글음절, 그래픽문자, 숫자만 허용 */ PFM_TRY( pfmStrRemoveBrokenKsc( dst, sizeof(dst)-1, src, strlen(src), 2, "KGN" ) ); PFM_ERR("dst=[%d:%s], opt=%-10s", strlen(dst), dst, "KGN" ); /*dst=[60:가나, ,ABYZ,abyz,0189, , , ], opt=KGN*/ }
72. pfmStrTrimKscN
문자열 앞 또는 뒤의 공백이나 KSC5601 space를 제거한다.
-
프로토타입
char * pfmStrTrimKscN(char *str, long len);
-
파라미터
파라미터명 설명 *str (입력)
입력 NULL 종료 문자열
len (입력)
입력 NULL 종료 문자열의 길이
-
반환값
문자열 앞, 뒤에 공백이 제거된 문자열을 반환한다.
-
예제
char str[100 + 1] = “ KOREA에오신걸환영합니다 ”; pfmStrTrimKscN(str, strlen(str)); /* str = “KOREA에오신걸환영합니다” */
73. pfmStrGetErrorMsg
String 유틸리티 사용하는 중 에러가 발생할 경우 해당 에러 메시지를 반환한다.
-
프로토타입
char * pfmStrGetErrorMsg(void);
-
반환값
해당 에러 메시지를 반환한다.
-
예제
rc = pfmStrSosiToKsc(dest2, 100, dest, strlen(dest)); if(rc != RC_NRM) { PFM_ERR(“%s”, pfmStrGetErrorMsg()); /* 또는 PFM_ERR(“%s”, pfmUtilGetErrorMsg()); */ return RC_ERR; }