C语言指针编写一个函数实现从源字符串中查找目标字符串,并进行替换。
时间: 2024-02-11 21:05:29 浏览: 75
c语言实现字符串替换
5星 · 资源好评率100%
以下是一个示例代码,实现从源字符串中查找目标字符串,并进行替换。
```c
#include <stdio.h>
#include <string.h>
// 函数声明
char* replace(char* src, const char* target, const char* replacement);
int main() {
char src[100] = "Hello, World! This is a sample string.";
const char* target = "sample";
const char* replacement = "replacement";
char* result = replace(src, target, replacement);
printf("Original string: %s\n", src);
printf("Replaced string: %s\n", result);
// 释放内存
free(result);
return 0;
}
char* replace(char* src, const char* target, const char* replacement) {
int target_len = strlen(target);
int replacement_len = strlen(replacement);
char* p = src;
while ((p = strstr(p, target)) != NULL) {
// 计算需要移动的字节数
int move_len = strlen(p + target_len) + 1;
// 如果目标字符串和替换字符串长度不同,需要移动后面的字符
if (target_len != replacement_len) {
memmove(p + replacement_len, p + target_len, move_len);
}
// 替换目标字符串
memcpy(p, replacement, replacement_len);
// 继续查找下一个目标字符串
p += replacement_len;
}
return src;
}
```
该函数会在源字符串中查找目标字符串,如果找到,则用替换字符串替换目标字符串。如果需要替换的字符串的长度和目标字符串的长度不同,则需要先把后面的字符进行移动,再进行替换。该函数返回替换后的源字符串。
阅读全文