데브피아사이트에서 공개된글을 퍼온겁니다. 저작권이라면 이걸 열심히 정리하신분이겠죠. 이름이 생각안나서 여다 올려도 될지 몰라서 걍 퍼 왔는데요. 그분도 무슨책에서 보고 정리했다고 나오길래 암튼 저런것들이 있어서 유용할것 같아서 올려놨어요. 보시고 문제가 있을것 같다면 삭제해 주세요. ^^

 

 ** 문자열 처리 함수 **

#include <string.h>

 

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

    strlen(문자열)

 

2) 문자열 결합(strcat)

    char *ptr;

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

 

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)

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

    }

'Development > C/C++' 카테고리의 다른 글

[2차원 배열 파라미터 전달]  (0) 2013.04.26
[배열을 null로 초기화]  (0) 2013.04.14
[volatile]  (0) 2012.12.13
[구조체 초기화]  (0) 2012.12.06
[memcmp]  (0) 2012.10.12
Posted by cyj4369
,