c语言怎么删除字符串的子串

avatar
作者
猴君
阅读量:0

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

  1. 使用strcpy()strlen()函数:
#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()函数:
#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; } 

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

广告一刻

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