替换子串函数(指针)
时间: 2024-08-12 18:09:24 浏览: 81
Linux C字符串替换函数实例详解
在C语言中,替换子串通常使用的是`strstr`和`strcpy`这两个标准库函数,但如果你想要通过指针操作来实现这个功能,可以手动遍历字符串并进行字符替换。以下是一个简单的示例,它展示了如何使用指针来替换子串:
```c
#include <stdio.h>
#include <string.h>
void replace_substring(char *str, const char *old_substring, const char *new_substring) {
if (strstr(str, old_substring) == NULL) {
// 如果没有找到旧子串,则无需替换
return;
}
size_t old_len = strlen(old_substring);
size_t new_len = strlen(new_substring);
size_t pos = 0;
while ((pos = strstr(str + pos, old_substring)) != NULL) {
memcpy(str + pos, new_substring, new_len); // 复制新子串
str[pos + old_len] = '\0'; // 更新结束符,防止意外的字符串连接
pos += new_len; // 移动指针到下一个旧子串的位置
}
}
int main() {
char str[] = "Hello, world! This is a test string.";
replace_substring(str, "world", "CSDN");
printf("%s\n", str); // 输出: Hello, CSDN! This is a test string.
return 0;
}
```
阅读全文