strsep C 소스
/* strtok는 구분자 사이에 내용이 없으면 그냥 지나감 */
/* strsep는 구분자 사이에 내용이 없으면 빈 문자열 반환 */
#include <stdio.h>
#include <string.h>
char *strsep(register char **stringp, register const char *delim);
int main()
{
char Buff[256];
char *from;
char *value;
memset(Buff, 0x00, sizeof(Buff));
memcpy(Buff, "a|b|c||e|", sizeof(Buff)-1);
from = Buff;
value = strsep(&from, "|");
printf("%s\n", value);
value = strsep(&from, "|");
printf("%s\n", value);
value = strsep(&from, "|");
printf("%s\n", value);
value = strsep(&from, "|");
printf("%s\n", value);
value = strsep(&from, "|");
printf("%s\n", value);
}
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;
return (tok);
}
} while (sc != 0);
}
/* NOTREACHED */
}
/* strsep는 구분자 사이에 내용이 없으면 빈 문자열 반환 */
#include <stdio.h>
#include <string.h>
char *strsep(register char **stringp, register const char *delim);
int main()
{
char Buff[256];
char *from;
char *value;
memset(Buff, 0x00, sizeof(Buff));
memcpy(Buff, "a|b|c||e|", sizeof(Buff)-1);
from = Buff;
value = strsep(&from, "|");
printf("%s\n", value);
value = strsep(&from, "|");
printf("%s\n", value);
value = strsep(&from, "|");
printf("%s\n", value);
value = strsep(&from, "|");
printf("%s\n", value);
value = strsep(&from, "|");
printf("%s\n", value);
}
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;
return (tok);
}
} while (sc != 0);
}
/* NOTREACHED */
}
'UNIX_LINUX_C_C++' 카테고리의 다른 글
tail.c 소스 (tail -f 기능 구현 open & fopen) (1) | 2012.02.02 |
---|---|
Diffie-Hellman 키분배 알고리즘 (0) | 2012.02.02 |
[window] 가우시안 분포 랜덤 생성 함수/알고리즘 (0) | 2012.02.02 |
[TMAX] 비요청 메세지를 보내기 (0) | 2012.01.17 |
IBM AIX 에서 IP 주소 알아내기 (0) | 2012.01.13 |