이 함수는 프로젝트 하면서 수 십번은 만든거 같다.
매번 만들고, 보관 안해서..
다음 프로젝트 땐 또 만들고.. 흐흐.
아무리 단순한 함수도 깨작 거리다 보면 1시간인데..
매번 반복.. 이제 잊지 말자 ^^
$ cat trim.c
#include <stdio.h>
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:''
매번 만들고, 보관 안해서..
다음 프로젝트 땐 또 만들고.. 흐흐.
아무리 단순한 함수도 깨작 거리다 보면 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;
}
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 |