阅读量:0
在C语言中,要从字符串中删除子字符串,你可以使用以下方法:
- 使用
strcpy()
和strlen()
函数 - 使用
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; }
请注意,这两种方法都会修改原始字符串。如果你需要保留原始字符串,可以创建一个新的字符串来存储结果。