Add function to count number of words in string
authorHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Tue, 24 Oct 2017 05:41:29 +0000 (07:41 +0200)
committerHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Tue, 24 Oct 2017 05:41:29 +0000 (07:41 +0200)
src-api/common/string.c
src-api/common/string.h

index 57faf2b..2ccb721 100644 (file)
@@ -256,6 +256,30 @@ str_skipnextword (const char *src) {
   return NULL;
 }
 
+/**
+ * @param src pointer to source string
+ * @return number of non-whitespace words separated by whitespaces in string
+ */
+size_t
+str_countwords(const char *src) {
+  size_t count = 0;
+
+  /* sanity check */
+  if (src != NULL) {
+    /* skip whitespace prefix */
+    while (isblank(*src)) {
+      src++;
+    }
+
+    while (src != NULL && *src != 0) {
+      count++;
+
+      src = str_skipnextword(src);
+    }
+  }
+  return count;
+}
+
 /**
  * Printable is defined as all ascii characters >= 32 except
  * 127 and 255.
index ac4fdf3..05d777f 100644 (file)
@@ -98,6 +98,7 @@ EXPORT char *str_trim (char *ptr);
 EXPORT const char *str_hasnextword (const char *buffer, const char *word);
 EXPORT const char *str_cpynextword (char *dst, const char *buffer, size_t len);
 EXPORT const char *str_skipnextword (const char *src);
+EXPORT size_t str_countwords(const char *src);
 
 EXPORT bool str_is_printable(const char *value);