본문 바로가기

개발/embed

c 로 trim ( white space 빈칸, 공백 등 삭제 ) 만들기, sample source

반응형

그냥 소스 올립니다.

 

////////////////////////////////////////////////////////////////////////////////  
////////////////////////////////////////////////////////////////////////////////
// define White Space
// ' ' (0x20) space (SPC)
//'\t' (0x09) horizontal tab (TAB)
//'\n' (0x0a) newline (LF)
//'\v' (0x0b) vertical tab (VT)
//'\f' (0x0c) feed (FF)
//'\r' (0x0d) carriage return (CR)

// Check if WhiteSpace
unsigned char isWSpace( char c ) {  // if WS return 1
  switch ( c ) { 
    case ' ': case '\t': case '\n': case '\v': case '\f': case '\r':   return 1;	
  } 
  return 0; 
}

// trim prefix
char *trimLStr(char *s) { 
  while( isWSpace(*s) ) s++;
  return s; 
}  

// trim suffix
char *trimRStr(char *s) 
{     
    char *c = s;
	
	// find end of original string
    while (*c) { c ++; }
    c--;

    // trim suffix
    while ( isWSpace(*c) ) {
        *c = '\0';  // 뒤쪽 빈칸을 0으로 채운다.
        c--;
    }
    return s;
}  

char *trimLRStr(char *s) { return trimRStr(trimLStr(s)); } 

////////////////////////////////////////////////////////////////////////////////  
////////////////////////////////////////////////////////////////////////////////

int main()
{
    char string1[] = "     abcdefg abcdf      ";
    char *strTrim = trimLRStr(string1);
    printf("String is [%s]\n",strTrim);
    return 0;
}
반응형