C言語のsub関数の機能

C言語のsub関数は、文字列操作として使われる関数で、ある文字列から指定した部分文字列を削除するために使用される。

サブ関数の使用方法は次のとおりです。

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

str は操作対象の元の文字列で、sub_str は削除する部分文字列です。

sub関数は、strからすべてのsub_strを削除し、結果の文字列へのポインタを返します。strにsub_strが含まれない場合、strのコピーを返します。

sub関数の使用例を以下に示します。

#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;
}

この例では、sub 関数が文字列 str のすべての文字 o を削除してから結果文字列を出力するのに使用されます。 出力結果は次のようになります。

Result: Hell, Wrld!

sub関数を使用して返された結果文字列を使用し終えた際には、動的に確保されたメモリ領域を解放するために手動でfree()関数を呼び出す必要があることに注意してください。

bannerAds