Implemented lz_sb_to_cstr
This commit is contained in:
parent
0f5e03632e
commit
5bb6ab1d1b
2 changed files with 24 additions and 0 deletions
16
examples/sb_to_cstr.c
Normal file
16
examples/sb_to_cstr.c
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#define LAZY_IMPL
|
||||||
|
#include "../lazy.h"
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
Lz_SB x = lz_sb_from_cstr("Hello");
|
||||||
|
Lz_SB y = lz_sb_from_cstr(" World");
|
||||||
|
|
||||||
|
lz_da_concat(x, y);
|
||||||
|
lz_sb_add_char(&x, '\n');
|
||||||
|
|
||||||
|
char *s = lz_sb_to_cstr(&x);
|
||||||
|
printf("%s", s);
|
||||||
|
free(s);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
8
lazy.h
8
lazy.h
|
|
@ -42,6 +42,7 @@ size_t lz_hm_hash_void_get(size_t cap, _Bool *exists, _Bool *tombstones,
|
||||||
size_t lz_hm_hash_void_set(size_t cap, _Bool *exists,
|
size_t lz_hm_hash_void_set(size_t cap, _Bool *exists,
|
||||||
_Bool *tombstones, void* key, size_t k_s);
|
_Bool *tombstones, void* key, size_t k_s);
|
||||||
Lz_Slc lz_slc_from_cstr(char *dat);
|
Lz_Slc lz_slc_from_cstr(char *dat);
|
||||||
|
char *lz_sb_to_cstr(Lz_SB *sb);
|
||||||
void lz_sb_append_cstr(Lz_SB *sb, const char *cstr);
|
void lz_sb_append_cstr(Lz_SB *sb, const char *cstr);
|
||||||
void lz_sb_add_char(Lz_SB *sb, char c);
|
void lz_sb_add_char(Lz_SB *sb, char c);
|
||||||
char *lz_cstr_dup(const char *s);
|
char *lz_cstr_dup(const char *s);
|
||||||
|
|
@ -404,6 +405,13 @@ Lz_SB lz_sb_from_cstr(const char *dat) {
|
||||||
return sb;
|
return sb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *lz_sb_to_cstr(Lz_SB *sb) {
|
||||||
|
char *cstr = malloc(sb->cnt+1);
|
||||||
|
memcpy(cstr, sb->data, sizeof(char)*sb->cnt);
|
||||||
|
cstr[sb->cnt] = 0;
|
||||||
|
return cstr;
|
||||||
|
}
|
||||||
|
|
||||||
#define lz_da_append(da, x) do { \
|
#define lz_da_append(da, x) do { \
|
||||||
if ((da).cap > (da).cnt) {\
|
if ((da).cap > (da).cnt) {\
|
||||||
(da).data[(da).cnt++] = (x);\
|
(da).data[(da).cnt++] = (x);\
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue