C语言编写一个函数实现从源字符串中查找目标字符串,并进行替换。如输入源字符串“We love math!" ,查找目标字符串“math",并将其替换为字符串“C Program”,在主函数中输出替换后的字符串“Welove C Program!
时间: 2024-02-11 22:05:37 浏览: 48
好的,这是一个比较基础的字符串操作题目,可以使用 C 语言中的字符串函数来完成。以下是一个实现方式:
```c
#include <stdio.h>
#include <string.h>
void replace(char *source, char *target, char *replacement) {
char buffer[1024];
char *pointer = source;
while ((pointer = strstr(pointer, target)) != NULL) {
// 找到目标字符串,将其替换为替换字符串
strncpy(buffer, source, pointer - source); // 复制目标字符串之前的部分
buffer[pointer - source] = '\0'; // 加上字符串结尾符
strcat(buffer, replacement); // 加上替换字符串
strcat(buffer, pointer + strlen(target)); // 加上目标字符串之后的部分
strcpy(source, buffer); // 将替换后的字符串复制回原字符串
pointer += strlen(replacement); // 指向替换后的字符串
}
}
int main() {
char source[] = "We love math!";
char target[] = "math";
char replacement[] = "C Program";
replace(source, target, replacement);
printf("%s\n", source);
return 0;
}
```
输出结果为:
```
We love C Program!
```
该程序的核心是 `replace` 函数,它使用了 C 语言中的 `strstr`、`strncpy`、`strcat` 和 `strcpy` 函数,分别用于查找目标字符串、复制字符串、连接字符串和复制字符串。在查找到目标字符串之后,我们需要先将目标字符串之前的部分复制到缓冲区中,然后连接上替换字符串和目标字符串之后的部分,在将替换后的字符串复制回原字符串中。最后,我们需要将指针指向替换后的字符串的结尾位置,以便下一次查找。
阅读全文