mirror of
https://github.com/theoludwig/libcproject.git
synced 2025-05-21 23:21:15 +02:00
perf: mutate strings instead of copy when possible
BREAKING CHANGE: Most of string functions mutates the string instead of copying now. This allows better performance when copy is not needed. It also allows more granual control. If copy is wanted, simply use `string_copy` before calling the function. Impacted functions are: `string_to_uppercase`, `string_to_lowercase`, `string_replace`, `string_trim_start`, `string_trim_end`, `string_trim`, `string_capitalize`, `string_reverse`
This commit is contained in:
@ -1,17 +1,17 @@
|
||||
#include "character.h"
|
||||
|
||||
void character_append(string_t string_value, const char character) {
|
||||
size_t length = string_get_length(string_value);
|
||||
character_append_at(string_value, character, length);
|
||||
void character_append(string_t string, const char character) {
|
||||
size_t length = string_get_length(string);
|
||||
character_append_at(string, character, length);
|
||||
}
|
||||
|
||||
void character_append_at(string_t string_value, const char character, const size_t index) {
|
||||
size_t length = string_get_length(string_value);
|
||||
void character_append_at(string_t string, const char character, const size_t index) {
|
||||
size_t length = string_get_length(string);
|
||||
for (size_t index_string = length; index_string > index; index_string--) {
|
||||
string_value[index_string] = string_value[index_string - 1];
|
||||
string[index_string] = string[index_string - 1];
|
||||
}
|
||||
string_value[index] = character;
|
||||
string_value[length + 1] = '\0';
|
||||
string[index] = character;
|
||||
string[length + 1] = '\0';
|
||||
}
|
||||
|
||||
char character_to_upper(const char character) {
|
||||
|
Reference in New Issue
Block a user