溫馨提示×

c語言怎么刪除字符串的子串

小億
84
2024-09-26 00:31:59
欄目: 編程語言

在C語言中,要刪除字符串中的子串,你可以使用以下方法:

  1. 使用strcpy()strlen()函數(shù):
#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    char sub[] = "World";
    char result[strlen(str) + 1];

    strcpy(result, str);
    int index = strstr(result, sub) - result;
    strncpy(result + index, result + index + strlen(sub), strlen(result) - index - strlen(sub));
    result[strlen(result)] = '\0';

    printf("Original string: %s\n", str);
    printf("Modified string: %s\n", result);

    return 0;
}
  1. 使用realloc()free()函數(shù):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* remove_substring(char *str, const char *sub) {
    char *result = strdup(str);
    char *index = strstr(result, sub);

    if (index) {
        *index = '\0';
        realloc(result, strlen(result) - strlen(sub) + 1);
    }

    return result;
}

int main() {
    char str[] = "Hello, World!";
    char sub[] = "World";
    char *result = remove_substring(str, sub);

    printf("Original string: %s\n", str);
    printf("Modified string: %s\n", result);

    free(result);

    return 0;
}

請注意,這些方法都會修改原始字符串。如果你需要保留原始字符串,請創(chuàng)建一個新的字符串來存儲結(jié)果。

0