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