티스토리 뷰

c언어에는 저바의 split 같은 함수가 없다.

그래서 만들어준다.

char *strsep(register char **stringp, register const char *delim){

register char *s;
register const char *spanp;
register int c, sc;
char *tok;

if((s=*stringp)==NULL)
return(NULL);
for(tok=s;;){
c=*s++;
spanp=delim;
do{
if((sc=*spanp++)==c){
if(c==0)
s=NULL;
else
s[-1]=0;
*stringp=s;
m_rtrim(tok);
return(tok);
}
}while(sc!=0);
}
}

//오른쪽 끝에 있는 공백 삭제
void m_rtrim(char *str){
char *pt;
int i;
for(pt=str+strlen(str)-1;(*pt==0x20) || (*pt==0xA1) ; pt--)
*pt = 0x00;

for(i=strlen(str)-1;i>=0;i--){
if(str[i]==0x20)
str[i]=0x00;
else
break;
}
}

사용시에는

char *from
char *value;

char buff[1000];
char work1[1000];

from=buff;

value=strsep(&from, "|"); strncpy(work1, value, sizeof(work1));
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함