Refactored string_set_at to be immutable and added String documentation
This commit is contained in:
36
README.md
36
README.md
@@ -11,7 +11,8 @@ the standard library. It currently features:
|
||||
|
||||
- [**Vector**](/docs/vector.md): a growable, contiguous array of homogenous generic data types;
|
||||
- [**Map**](/docs/map.md): an associative array that handles generic heterogenous data types;
|
||||
- [**BigInt**](/docs/bigint.md): a data type for arbitrary large integers.
|
||||
- [**BigInt**](/docs/bigint.md): a data type for arbitrary large integers;
|
||||
- [**String**](/docs/string.md): an immutable string type with partial UTF-8 support.
|
||||
|
||||
## Usage
|
||||
At its simplest, you can use this library as follows:
|
||||
@@ -167,6 +168,39 @@ int main(void) {
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### `String` usage:
|
||||
```c
|
||||
#include <stdio.h>
|
||||
|
||||
#include "src/string.h"
|
||||
|
||||
/*
|
||||
* Compile with: gcc -O3 main.c src/string.c
|
||||
* Output: Final string: "Hello,World,😀" Splitted: ["Hello" "World" "😀" ]
|
||||
*/
|
||||
int main(void) {
|
||||
string_t *x = string_new(" Hello, ").value.string;
|
||||
string_t *x_trm = string_trim(x).value.string;
|
||||
|
||||
string_t *y = string_new("😀,dlroW").value.string;
|
||||
string_t *y_rev = string_reverse(y).value.string;
|
||||
|
||||
string_t *str = string_concat(x_trm, y_rev).value.string;
|
||||
string_t **strings = string_split(str, ",").value.split.strings;
|
||||
|
||||
printf("Final string: \"%s\" Splitted: [", str->data);
|
||||
for (int idx = 0; idx < 3; idx++) { printf("\"%s\" ", strings[idx]->data); }
|
||||
printf("]\n");
|
||||
|
||||
string_split_destroy(strings, 3); string_destroy(str);
|
||||
string_destroy(x); string_destroy(y);
|
||||
string_destroy(x_trm); string_destroy(y_rev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
For a more exhaustive example, refer to the `usage.c` file. There, you will find a program with proper error management
|
||||
and a sample usage for every available method. To run it, first issue the following command:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user