Add string_set_char function

This commit is contained in:
Patrick Pelissier committed 2021-09-22 23:07:35 +02:00
1 parent 39eeb3aec7
commit 61f8dcdbae
3 files changed
+18 -1

No files matched your search

+6 -1
View File
@@ -5030,7 +5030,12 @@ reallocation of the underlying array of char has to be performed.
##### char string\_get\_char(const string\_t v, size\_t index)
Return the byte 'index' of the string 'v'.
Return the byte at position 'index' of the string 'v'.
'index' shall be within the allowed range of bytes of the string.
##### void string\_set\_char(string\_t v, size\_t index, const char c)
Set the byte at position 'index' of the string 'v' to 'c'.
'index' shall be within the allowed range of bytes of the string.
##### bool string\_empty\_p(const string\_t v)
+9
View File
@@ -239,6 +239,15 @@ string_get_char(const string_t v, size_t index)
return string_get_cstr(v)[index];
}
/* Set the selected character of the string */
static inline void
string_set_char(string_t v, size_t index, const char c)
{
M_STR1NG_CONTRACT (v);
M_ASSERT_INDEX(index, string_size(v));
m_str1ng_get_cstr(v)[index] = c;
}
/* Test if the string is empty or not */
static inline bool
string_empty_p(const string_t v)
+3
View File
@@ -133,6 +133,9 @@ static void test0(void)
string_set_str (s1, "Hello, world!");
assert (string_size(s1) == 13);
assert (string_get_char(s1, 1) == 'e');
string_set_char(s1, 1, 'E');
assert (string_get_char(s1, 1) == 'E');
string_set_char(s1, 1, 'e');
string_clean(s1);
assert (string_size(s1) == 0);