Add function string_subset
This commit is contained in:
1 parent
ebf440731d
commit
45f8b31efc
3 files changed
+23
No files matched your search
@@ -5071,6 +5071,14 @@ Keep the right part of the string, after the index 'index'.
|
||||
|
||||
Extract the medium string from offset 'index' and up to 'size' bytes.
|
||||
|
||||
##### void string\_subset (string\_t v, const string\_t org, size\_t index, size\_t size)
|
||||
|
||||
Extract the medium string from offset 'index' and up to 'size' bytes of 'org'
|
||||
and set it in 'v'.
|
||||
|
||||
The subset string shall fully exist in the string org.
|
||||
The string 'v' and 'org' shall be different.
|
||||
|
||||
##### size\_t string\_replace\_str (string\_t v, const char str1[], const char str2[] [, size_t start])
|
||||
##### size\_t string\_replace (string\_t v, const string\_t str1, const string\_t str2 [ , size_t start])
|
||||
|
||||
|
||||
+12
@@ -709,6 +709,18 @@ string_mid (string_t v, size_t index, size_t size)
|
||||
string_left(v, size);
|
||||
}
|
||||
|
||||
/* Set the string 'v' to the substring of org from position index to size bytes */
|
||||
static inline void
|
||||
string_subset (string_t v, const string_t org, size_t index, size_t size)
|
||||
{
|
||||
// The substring shall fully exist within the string org
|
||||
assert(index + size <= string_size(org) );
|
||||
assert(v != org);
|
||||
|
||||
const char *str = string_get_cstr(org);
|
||||
string_set_strn(v, &str[index], size);
|
||||
}
|
||||
|
||||
/* Return in the string the C string str1 into the C string str2 from start
|
||||
By default, start is zero.
|
||||
*/
|
||||
|
||||
@@ -201,6 +201,9 @@ static void test0(void)
|
||||
string_mid (s1, j, 2);
|
||||
assert (string_cmp_str (s1, ", ") == 0);
|
||||
|
||||
string_subset (s1, s2, j, 2);
|
||||
assert (string_cmp_str (s1, ", ") == 0);
|
||||
|
||||
string_set (s1, s2);
|
||||
i = string_replace_str (s1, "world", "Paul");
|
||||
assert (i != STRING_FAILURE);
|
||||
|
||||
Reference in new issue
Block a user