newtype
::: newtype의 지식창고 :::
newtype
전체 방문자
오늘
어제
  • 분류 전체보기 (392)
    • Dev (214)
      • C, C++ (43)
      • Go (5)
      • Web (49)
      • DBMS (21)
      • DevOps (8)
      • Java (2)
      • Windows, Win32 (4)
      • Visual Basic (5)
      • C# (2)
      • Mobile (25)
      • SQL CE (7)
      • Google Map (6)
      • Python (2)
      • cygwin (2)
      • 기타 (32)
      • Ruby (1)
    • 명언 (10)
    • 모임 (18)
      • 붕주회 (3)
      • 신흥컴정 (14)
      • 웹20기 (1)
    • 사진 (8)
    • 불펌 (29)
    • 막글 (98)
    • 게임 (6)
    • 여행 (8)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

  • whoami
05-12 00:06
hELLO · Designed By 정상우.
newtype

::: newtype의 지식창고 :::

Dev/C, C++

trim

2007. 9. 14. 18:02
이 함수는 프로젝트 하면서 수 십번은 만든거 같다.
매번 만들고, 보관 안해서..
다음 프로젝트 땐 또 만들고.. 흐흐.
아무리 단순한 함수도 깨작 거리다 보면 1시간인데..
매번 반복.. 이제 잊지 말자 ^^


$ cat trim.c

#include <stdio.h>

/* 앞뒤 공백 제거 */
char* trim( char *s )
{
    char *f=s, *e=0, *c=s;
    
    /* 뒤쪽 공백 제거 */
    e=s +(strlen(s)) -1;
    while(*e==' '&&s<=e) e--;
    *(e+1)=0;
    
    /* 앞쪽 공백 제거 */
    while(*f==' '&&f<=e) f++;
    
    /* 공백 없는 부분 복사 */
    if (s!=f) {
        while(f<=e) *(c++) = *(f++);
        *c=0;
    }
    
    return s;
}


int main()
{
        char org1[]="i am a boy";
        char org2[]="  i am a boy";
        char org3[]="i am a boy  ";
        char org4[]="  i am a boy   ";
        char org5[]="     ";
        char org6[]="";
 
        printf("org:'%s', ", org1 );
        printf("trim:'%s'\n", trim(org1) );
        printf("org:'%s', ", org2 );
        printf("trim:'%s'\n", trim(org2) );
        printf("org:'%s', ", org3 );
        printf("trim:'%s'\n", trim(org3) );
        printf("org:'%s', ", org4 );
        printf("trim:'%s'\n", trim(org4) );
        printf("org:'%s', ", org5 );
        printf("trim:'%s'\n", trim(org5) );
        printf("org:'%s', ", org6 );
        printf("trim:'%s'\n", trim(org6) );
        return 0;
}

$ trim
org:'i am a boy', trim:'i am a boy'
org:'  i am a boy', trim:'i am a boy'
org:'i am a boy  ', trim:'i am a boy'
org:'  i am a boy   ', trim:'i am a boy'
org:'     ', trim:''
org:'', trim:''


반응형

'Dev > C, C++' 카테고리의 다른 글

c ini 읽는 모듈..  (2) 2008.04.30
tracelog  (0) 2008.01.23
xor을 이용한 swap 함수  (0) 2007.08.09
socket connect timeout  (2) 2007.05.29
URL Encoding/Decoding 함수  (1) 2007.04.05
    'Dev/C, C++' 카테고리의 다른 글
    • c ini 읽는 모듈..
    • tracelog
    • xor을 이용한 swap 함수
    • socket connect timeout
    newtype
    newtype
    지극히 개인적인 지식의 창고

    티스토리툴바