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;
    }