From 8a4984e0e15fcfb0be6db242ab3f60325b80abd8 Mon Sep 17 00:00:00 2001 From: Leo Tenenbaum Date: Mon, 18 Jan 2021 20:54:07 -0500 Subject: bug fixes, narrow file list based on search term --- string32.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'string32.c') diff --git a/string32.c b/string32.c index 35aa1a2..4d033c0 100644 --- a/string32.c +++ b/string32.c @@ -91,18 +91,17 @@ size_t str32_count_char(String32 s, char32_t c) { // returns number of characters deleted from s size_t str32_remove_all_instances_of_char(String32 *s, char32_t c) { - bool increment = true; char32_t *str = s->str; size_t ndeleted = 0; - for (size_t i = 0; i < s->len; i += increment, increment = true) { - if (str[i] == c) { - --s->len; - if (i < s->len) { - str[i] = str[i+1]; - } + size_t len = s->len; + size_t out = 0; + for (size_t in = 0; in < len; ++in) { + if (str[in] == c) { ++ndeleted; - increment = false; + } else { + str[out++] = str[in]; } } + s->len = out; return ndeleted; } -- cgit v1.2.3