aboutsummaryrefslogtreecommitdiff
path: root/src/stringutils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stringutils.c')
-rw-r--r--src/stringutils.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/stringutils.c b/src/stringutils.c
new file mode 100644
index 0000000..172d40d
--- /dev/null
+++ b/src/stringutils.c
@@ -0,0 +1,47 @@
+#include "stringutils.h"
+#include <string.h>
+
+void string_replace(char *str, char old_char, char new_char) {
+ for(;;) {
+ char c = *str;
+ if(c == old_char)
+ *str = new_char;
+ else if(c == '\0')
+ break;
+ ++str;
+ }
+}
+
+char* lstrip(char *str) {
+ for(;;) {
+ char c = *str;
+ if(c != ' ' && c != '\t' && c != '\n')
+ break;
+ else if(c == '\0')
+ break;
+ ++str;
+ }
+ return str;
+}
+
+void rstrip(char *str) {
+ int len = strlen(str);
+ if(len == 0)
+ return;
+
+ char *p = str + len - 1;
+ while(p != str) {
+ char c = *p;
+ if(c != ' ' && c != '\t' && c != '\n')
+ break;
+ --p;
+ }
+
+ p[1] = '\0';
+}
+
+char* strip(char *str) {
+ str = lstrip(str);
+ rstrip(str);
+ return str;
+} \ No newline at end of file