ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자주 사용하는 문자열 관련 함수 정리
    C 2011. 10. 14. 17:38
    04년도에 보던 것인데

    이번 기회에 포스팅!




     ** 문자열 처리 함수 **

    #include <string.h>

     

    1) 문자열의 길이 측정(strlen)

        strlen(문자열)

     

    2) 문자열 결합(strcat)

        char *ptr;

        ptr = strcat(문자열1, 문자열2)

    //문자열1에 문자열2가 붙는다.
    //리턴값은 문자열1의 번지값이 리턴된다.

    3) 문자열 비교(strcmp)

        int i;

        i = strcmp(문자열, 문자열2)

        i == 0 <--- 같다.

        i != 1 같지 않다.

     

    4) 문자열 복사(strcpy)

        char *ptr;

        strcpy(문자열, 문자열2)

        문자열2를 문자열로 복사

     

    5) 문자열 변환(atoi, atol, atof)

        atoi -> 정수

        atol -> long

        atof -> 부동 소수점.

        

        long b; float c;

        int a;

        a = atoi("1234");

        b = atol("-544334");

        c = atof("43.5456);

     

    6) 문자열 교환 함수 (str_swap)


    2) 문자열 결합(strcat)

        char *ptr;

        ptr = strcat(문자열, 문자열2)



    2) 문자열 결합(strcat)

        char *ptr;

        ptr = strcat(문자열, 문자열2)

        void str_cpy(char *ptr1, char *ptr2)

        {

           while(*ptr2)

            *ptr1++ = *ptr2++;

           *ptr1 = NULL;

        }

     

        void str_swap(char *a, char *b)

        {

           char temp[255];

     

           str_cpy(temp, a)

           str_cpy(a, b);

           str_cpy(b, temp);

        }

    7) 문자열 내에서 특정 문자의 개수를 카운트 하는 함수(char_cnt)

        int char_cnt(char *ptr, char ch)

        {

            int i = 0;

            wile(*ptr)

            if(*ptr++ == ch)

            i++;

            return(i);

        }  

     

    8) 문자열 내의 특정 문자를 다른 문자로 바꾸는 함수(str_chg)

        int str_chg(char *ptr, char ch1, char ch2)

        {

           while(*ptr)

           {

            if(*ptr == ch1)

               *ptr = ch2;

            ptr++;

           }

        }

     

    9) 문자열 내의 특정 문자를 탐색(str_fine)

        char *str_find(char *ptr, char ch)

        {

           while(*ptr)

           {

            if(*ptr == ch)

               return(ptr);

            ptr++;

           }

           return((char *)(-1));

        } 

     

    10) 문자열 내의 소문자를 대문자로 바꾸는 함수(str_upp)

        void str_upp(char *ptr)

        {

           while(*ptr)

           {

            if(islower(*ptr))

               *ptr = toupper(*ptr);

            ptr++;

            }

        }

     

    11) 문자열 내의 대문자를 소문자로 바꾸는 함수(str_low)

        void str_low(char *ptr)

        {

           while(*ptr)

           {

            if(isupper(*ptr))

               *ptr = tolower(*ptr);

            ptr++;

           }

        }

     

    12) 대문자와 소문자 상호 교환 함수(str_case)

        void str_case(char *ptr)

        {

           while(*ptr)

           {

            if(isupper(*ptr))

               *ptr = tolower(*ptr);

            else if(islower(*ptr)

               *ptr = toupper(*ptr);

            ptr++;

           }

        }

     

    13) 각 문장의 첫 문자만 대문자로 교환하는 함수(str_fst)

        void str_fst(char *ptr)

        {

            if(islower(*ptr))

            *ptr = toupper(*ptr);

            while(*ptr)

            {

            if(*ptr == '.')

            {

               ptr++;

               while(*ptr == ' ')

                ptr++;

               if(islower(*ptr))

                *ptr = toupper(*ptr);

            }

            }

            ptr++;

        }

     

    14) 문자열 내의 지정한 위치에 다른 문자열을 삽입하는 함수(str_ins)

        char *str_ins(char ptr1[], char ptr2[],int t)

        {

           char temp[255];

           int i, j, k;

           if(t>=str_len(ptr1) return (-1);

           

           for(k=0; i=0; i<t; i++; k++)

            temp[k] = ptr1[i];

        

           for(j=0; ptr2[j] !=NULL; j++, k++)   

            temp[k] = ptr2[j];

     

           while(ptrl1[i])

            temp[k++] = ptr1[i++];

           temp[k] = NULL;

        }

     

    15) 문자열 앞에 지정한 개수 만큼의 공백을 추가하는 함수(str_blk)

        void str_blk(char ptr[], int t)

        {

           static char temp[255];

           int i;

           for(i = 0; i<t; i++)

            temp[i] = BLANK;

           temp[i] = NULL;

           str_cat(temp ptr);

           str_cpy(ptr, temp);

        }

     

    16) 문자열 내의 모든 공백을 삭제하는 함수(rmv_blk)

        void rmv_blk(char ptrp[])

        {

           char temp[255];

           int i, k;

     

           for(i=0, k=0; ptr[i] != NULL; i++)

            if(ptr[i] != BLANK)

               temp[k++] = ptr[i];

           temp[k] = NULL;

           str_cpy(ptr, temp);

        }

     

    17) 문자열 내에서 원하는 개수 만큼 문자를 삭제하는 함수(str_rmv)

        void str_rmv(char *ptr, int loc, int count)

        {

           int len, i, j;

           len = str_len(ptr);

           if(loc >= len)

            return (-1);

           if(loc + count <= len)

           {

            j = loc + count;

            for(i=loc; ptr[j] != 0; i++)

            {

               ptr[i] = ptr[j];

               j++;

            }

                ptr[i] = NULL

           }

           else

            ptr[loc] = NULL;

        }

     

    18) 특정한 문자열이 기억된 위치를 계산하는 함수(str_loc)

        int str_loc(char ptr1[], char ptr2[])

        {

           int i, j, k;

           for(i=0; ptr1[i] != NULL; i++)

            for(j=i, k=0; ptr2[k] == ptr1[j]; k++, j++)

               return (i);

           return (-1);

        }

     

    19) 특정한 문자열이 나온 개수를 카운트 하는 함수(str_cnt)

        int str_cnt(char ptr1[], char ptr2[])

        {

           int i, j, k;

           int count = 0;

           for(i=0; ptr1[i] != NULL; i++)

            for(j=i, k=0; ptr2[k] == ptr1[j]; k++, j++)

               if(ptr2[k+1] == NULL)

               {

                count++;

                break;

               }

            return ((count == 0) ? -1 : count);

        } 

    'C' 카테고리의 다른 글

    이차원 배열의 동적 메모리 할당  (0) 2011.10.15
    리눅스에서 gcc 컴파일 할 때 reference 에러  (0) 2011.10.12
Designed by Tistory.