Quellcode durchsuchen

[str.h] Adding function to compare str to cstr

Vinicius Teshima vor 1 Jahr
Ursprung
Commit
70f0b76843
1 geänderte Dateien mit 21 neuen und 1 gelöschten Zeilen
  1. 21 1
      src/str.h

+ 21 - 1
src/str.h

@@ -3,6 +3,7 @@
 
 #include <stdint.h>
 #include <stddef.h>
+#include <stdbool.h>
 
 
 struct str {
@@ -24,6 +25,8 @@ struct str str_strip(struct str str);
 struct str_tokenizer str_tokenize(struct str str, char c);
 struct str str_tokenizer_next(struct str_tokenizer *st);
 
+bool str_eq_cstr(struct str str, const char *cstr, size_t cstr_size);
+
 #if defined(IMP) || defined(IMP_STR)
 
 #include <ctype.h>
@@ -121,7 +124,24 @@ ret_err:
 	return str;
 }
 
-#endif /* defined(IMP) || defined(IMP_STR) */
 
+bool 
+str_eq_cstr(struct str str, const char *cstr, size_t cstr_size)
+{
+	size_t i = 0;
+	if ( str.size != cstr_size ) {
+		return false;
+	}
+
+	for ( i = 0; i < str.size; ++i ) {
+		if ( str.data[i] != cstr[i] ) {
+			return false;
+		}
+	}
+
+	return true;
+}
+
+#endif /* defined(IMP) || defined(IMP_STR) */
 
 #endif /* STR_H */