c語(yǔ)言中sub函數(shù)的用法是什么

小億
930
2023-12-07 08:47:13

在C語(yǔ)言中,sub函數(shù)是一種用于字符串操作的函數(shù),用于從一個(gè)字符串中刪除指定的子字符串。

sub函數(shù)的用法如下:

char *sub(const char *str, const char *sub_str)

其中,str是要操作的源字符串,sub_str是要?jiǎng)h除的子字符串。

sub函數(shù)會(huì)從str中刪除所有的sub_str,并返回一個(gè)指向結(jié)果字符串的指針。如果str中不包含sub_str,則返回str的副本。

以下是一個(gè)sub函數(shù)的示例使用:

#include <stdio.h>
#include <string.h>

char *sub(const char *str, const char *sub_str) {
    char *result = (char *)malloc(strlen(str) + 1);
    char *p = result;
    int sub_len = strlen(sub_str);
    
    while (*str) {
        if (strncmp(str, sub_str, sub_len) == 0) {
            str += sub_len;
        } else {
            *p++ = *str++;
        }
    }
    *p = '\0';
    
    return result;
}

int main() {
    const char *str = "Hello, World!";
    const char *sub_str = "o";

    char *result = sub(str, sub_str);
    
    printf("Result: %s\n", result);

    free(result);

    return 0;
}

這個(gè)示例中,sub函數(shù)用于刪除字符串str中的所有字符o,然后打印結(jié)果字符串。輸出結(jié)果為:

Result: Hell, Wrld!

需要注意的是,在使用完sub函數(shù)返回的結(jié)果字符串后,需要手動(dòng)調(diào)用free()函數(shù)釋放動(dòng)態(tài)分配的內(nèi)存空間。

0