StrDeleteRange

Table of Contents

StrDeleteRange

Description

Delete chars in given range [start, start + count)

Parameters

NameDirectionDescription
strin,outStr to delete a sequence of characters from.
startinStarting index to start deleting from.
countinNumber of characters to be deleted (including the starting index).

Success

return

Failure

Does not return

Usage example (Cross-references)

    while (i + match_len <= s->length && replaced < count) {
    if (MemCompare(s->data + i, match, match_len) == 0) {
    StrDeleteRange(s, i, match_len);
    StrInsertCstr(s, replacement, i, replacement_len);
    i        += replacement_len;
    // Test StrDeleteRange function
    bool test_str_delete_range(void) {
    printf("Testing StrDeleteRange\n");
    
    Str s = StrInitFromZstr("Hello World");
    
    // Delete a range of characters
    StrDeleteRange(&s, 5, 6);
    
    // Check that the characters were deleted
    
    // Delete another range
    StrDeleteRange(&s, 2, 2);
    
    // Check that the characters were deleted
    // This will make the higher indices invalid
    if (idx == 3) {
    StrDeleteRange(&s, 0, 6); // Remove first 6 characters
    printf(
    "Deleted first 6 characters, new length=%zu, but range iteration will continue to idx %zu...\n",
    // When we reach idx=8, delete several characters
    if (idx == 8) {
    StrDeleteRange(&s, 0, 20); // Remove first 20 characters
    printf(
    "Deleted first 20 characters, new length=%zu, but range ptr iteration continues to idx %zu...\n",

Share :