溫馨提示×

c語言編程如何從字符串中刪除子字符串

小億
142
2024-09-26 00:29:09
欄目: 編程語言

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

  1. 使用strcpy()strlen()函數
  2. 使用memmove()函數

下面是兩種方法的示例代碼:

方法1:使用strcpy()strlen()函數

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

void remove_substring(char *str, const char *sub) {
    char result[strlen(str) + 1];
    char *src, *dst;

    src = str;
    dst = result;

    while (*src != '\0') {
        if (strncmp(src, sub, strlen(sub)) != 0) {
            *dst++ = *src;
        }
        src++;
    }
    *dst = '\0';

    strcpy(str, result);
}

int main() {
    char str[] = "Hello, I am a C programming assistant.";
    const char *sub = "C programming";

    printf("Original string: %s\n", str);
    remove_substring(str, sub);
    printf("After removing substring: %s\n", str);

    return 0;
}

方法2:使用memmove()函數

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

void remove_substring(char *str, const char *sub) {
    char *src, *dst;
    size_t sub_len = strlen(sub);

    src = str;
    dst = str;

    while (*src != '\0') {
        if (strncmp(src, sub, sub_len) != 0) {
            dst = src;
        }
        src++;
    }

    *dst = '\0';
}

int main() {
    char str[] = "Hello, I am a C programming assistant.";
    const char *sub = "C programming";

    printf("Original string: %s\n", str);
    remove_substring(str, sub);
    printf("After removing substring: %s\n", str);

    return 0;
}

請注意,這兩種方法都會修改原始字符串。如果你需要保留原始字符串,可以創建一個新的字符串來存儲結果。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女