用C语言编写一个函数实现从源字符串中查找目标字符串,并进行替换。如输入源字符串“We love math!”,查找目标字符串“math”,并将其替换为字符串“CProgram”,在主函数中输出替换后的字符串“We love C Program!”. 【关键代码】 由于在源字符串中查找目标字符串并替换的功能在自定义函数中实现,因此函数的形式参数需有三个:一个为源字符串,一个为目标字符串,还有一个为替换的字符串。函数的返回值为完成查找和替换操作后的字符串。若字符串中没有查找到目标字符串,则返回“No Found!”字符串。因此函数的首部可以为: char *replace(char source,char *target,char *string) 其中 source为字符型的指针变量,存放源字符串的首地址:target存放目标字符串的首地址:string用于存放替换后的字符串的首地址,该函数返回的是一个字符型的指针。
时间: 2023-12-30 11:04:59 浏览: 50
c语言实现字符串替换
5星 · 资源好评率100%
以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
char *replace(char *source, char *target, char *string) {
char *result;
char buffer[1024];
char *p;
int i = 0;
int match = 0;
int target_len = strlen(target);
int source_len = strlen(source);
// 查找目标字符串
while (*source != '\0') {
if (strncmp(source, target, target_len) == 0) {
match = 1;
for (p = string; *p != '\0'; p++) {
buffer[i++] = *p;
}
source += target_len;
} else {
buffer[i++] = *source++;
}
}
// 如果没有找到目标字符串,则返回"No Found!"字符串
if (!match) {
result = "No Found!";
} else {
// 复制替换后的字符串到结果字符串中
buffer[i] = '\0';
result = (char *)malloc(i + 1);
strcpy(result, buffer);
}
return result;
}
int main() {
char source[] = "We love math!";
char target[] = "math";
char string[] = "C Program";
char *result = replace(source, target, string);
printf("%s\n", result);
free(result);
return 0;
}
```
输出结果为:We love C Program!
阅读全文