c语言编程如何从字符串中删除子字符串

avatar
作者
猴君
阅读量:0

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

请注意,这两种方法都会修改原始字符串。如果你需要保留原始字符串,可以创建一个新的字符串来存储结果。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!