Almost there on parsing.

This commit is contained in:
Simon Forman 2023-02-01 16:57:46 -08:00
parent 2f71db945a
commit 6694d3d596
1 changed files with 10 additions and 4 deletions

View File

@ -1,9 +1,11 @@
#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include <gc.h>
const char *BLANKS = " \t";
const char *TEXT = " hi there friend";
const char *TEXT = " hi there fr[ie]nd";
/* 01234567890123456789
^ ^
*/
@ -22,15 +24,19 @@ trim_leading_blanks(char *str)
int
main(void)
{
char *rest, *text;
char *rest, *text, *snip;
ptrdiff_t diff;
text = trim_leading_blanks((char *)TEXT);
rest = strpbrk(text, " []");
while (NULL != rest) {
diff = rest - text;
text = rest;
printf("%ld\n", diff);
rest = strpbrk(++rest, " []");
snip = (char *)GC_malloc(diff + 1);
strncat(snip, text, diff);
printf("%s <%c>\n", snip, rest[0]);
text = ++rest;
rest = strpbrk(text, " []");
}
printf("%s\n", text);
}