C byDreamy postedAug 05, 2005

개선된 Trim() - trim(), trim_right(), trim_left()

?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

+ - Up Down Comment Print
연진이가 짠거.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

// 문자열 좌우의 개행문자나 공백등을 삭제하는 함수
// 추가적으로 const 문자열을 받아 공간을 확보하여 복사를 함으로
// 이 함수를 실행할 경우 새로운 문자열 공간을 확보하는 기능을 겸함
//// 즉 새로운 문자열을 받을 경우 처음에 실행 해주는 것을 권함
char *trim(const char *str)
{
        int length = 0;
        char *temp = NULL;

        if (str == NULL) return NULL;

        length = strlen(str);

        temp = (char *)malloc((length + 1) * sizeof(char));

        strcpy(temp, str);

        temp = trim_right(temp);
        temp = trim_left(temp);

        return temp;
}

// 문자열 오른쪽의 개행문자나 공백등을 삭제하는 함수
char *trim_left(char *str)
{
        char        *char_ptr = str;

        char_ptr += strlen(char_ptr) - 1;

        while(1)
        {
                if (*char_ptr == ' ' || *char_ptr == '\t' || *char_ptr == '\n') char_ptr--;
                else break;
        }

        *(char_ptr + 1) = (char)NULL;

        return str;
}

// 문자열 왼쪽의 개행문자나 공백등을 삭제하는 함수
char *trim_right(char *str)
{
        char        *char_ptr = str;
        int                length = 0;

        while(1)
        {
                if (*char_ptr == ' ' || *char_ptr == '\t' || *char_ptr == '\n') char_ptr++;
                else break;
        }

        length = strlen(char_ptr);

        strcpy(str, char_ptr);

        *(str + length) = (char)NULL;

        return str;
}

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5