feat(sv): add string view lib
This commit is contained in:
49
app/strings.c
Normal file
49
app/strings.c
Normal file
@@ -0,0 +1,49 @@
|
||||
#include "c-libs/dyn-arr.h"
|
||||
#include "c-libs/string-view.h"
|
||||
#include <ctype.h>
|
||||
|
||||
int main() {
|
||||
StringView sv = sv_new("Hello World\n");
|
||||
|
||||
sv_puts(sv);
|
||||
sv_puts(sv_drop(sv_shrink(sv, 3), 2));
|
||||
sv_puts(sv_drop(sv_shrink(sv, 5), 9));
|
||||
|
||||
StringView sv2 = sv_new("AAA Test BBB");
|
||||
sv_puts(sv2);
|
||||
puts("");
|
||||
sv2 = sv_seek(sv2, ' ');
|
||||
sv_puts(sv2);
|
||||
puts("");
|
||||
sv2 = sv_seek_back(sv2, ' ');
|
||||
sv_puts(sv2);
|
||||
puts("");
|
||||
|
||||
StringView csv = sv_new(" 100 , 2000, 10 ,1,871");
|
||||
|
||||
StringView *values = NULL;
|
||||
darr_init(values, 0);
|
||||
|
||||
while (sv_len(csv)) {
|
||||
StringView item = sv_split_at(&csv, ',');
|
||||
darr_push(values, sv_trim(item, isspace));
|
||||
}
|
||||
|
||||
char *all = sv_concat_with_sep(values, darr_size(values), sv_new("::"));
|
||||
puts(all);
|
||||
|
||||
darr_clear(values);
|
||||
|
||||
StringView ccsv = sv_new(all);
|
||||
while (sv_len(ccsv)) {
|
||||
StringView item = sv_split_at_sv(&ccsv, sv_new("::"));
|
||||
darr_push(values, sv_trim(item, isspace));
|
||||
}
|
||||
|
||||
char *all2 = sv_concat_with_sep(values, darr_size(values), sv_new("-+-"));
|
||||
puts(all2);
|
||||
|
||||
free(all);
|
||||
free(all2);
|
||||
darr_free(values);
|
||||
}
|
||||
Reference in New Issue
Block a user