OSDN Git Service

trim_leading_blanks
authorSimon Forman <sforman@hushmail.com>
Thu, 2 Feb 2023 00:40:14 +0000 (16:40 -0800)
committerSimon Forman <sforman@hushmail.com>
Thu, 2 Feb 2023 00:40:14 +0000 (16:40 -0800)
implementations/C/parser.c

index 324af8d..adb3b33 100644 (file)
@@ -2,17 +2,30 @@
 #include <stdio.h>
 #include <string.h>
 
-const char *text = "hi there friend";
+const char *BLANKS = " \t";
+const char *TEXT = " hi there friend";
 /*                  01234567890123456789
-                      ^     ^
+                       ^     ^
 */
 
+char *
+trim_leading_blanks(char *str)
+{
+        size_t offset = strspn(str, BLANKS);
+        if (offset == strlen(str)) {
+                /* All blanks. */
+                return NULL;
+        }
+        return str + offset;
+}
+
 int
 main(void)
 {
-       char *rest;
+       char *rest, *text;
        ptrdiff_t diff;
 
+        text = trim_leading_blanks((char *)TEXT);
        rest = strpbrk(text, " []");
        while (NULL != rest) {
                diff = rest - text;