用c语言编写程序:编写一个函数实现输入源字符串并从源字符串中查找目标字符串,并进行替换
时间: 2023-12-22 12:05:13 浏览: 123
好的,以下是一个示例代码,实现了输入源字符串并从源字符串中查找目标字符串,并进行替换:
```c
#include <stdio.h>
#include <string.h>
void replace(char *src, char *target, char *replacement) {
char buffer[1024]; // 定义一个缓冲区
char *s = src; // 定义源字符串的指针
int len_target = strlen(target); // 目标字符串的长度
int len_replacement = strlen(replacement); // 替换字符串的长度
int count = 0; // 计数器,用于记录替换的次数
while (*s) {
if (strstr(s, target) == s) {
// 如果找到了目标字符串
strcpy(buffer + count * (len_replacement - len_target), replacement);
// 在缓冲区中复制替换字符串
count++; // 计数器加一
s += len_target; // 源字符串指针移到目标字符串之后
} else {
buffer[count * (len_replacement - len_target)] = *s;
// 没有找到目标字符串,直接复制源字符串到缓冲区
s++;
}
}
buffer[count * (len_replacement - len_target)] = '\0'; // 在缓冲区中添加结束符
strcpy(src, buffer); // 将缓冲区中的内容复制回源字符串
}
int main() {
char source[1024]; // 定义源字符串
char target[1024]; // 定义目标字符串
char replacement[1024]; // 定义替换字符串
printf("请输入源字符串:");
scanf("%s", source);
printf("请输入目标字符串:");
scanf("%s", target);
printf("请输入替换字符串:");
scanf("%s", replacement);
replace(source, target, replacement); // 调用替换函数
printf("替换后的字符串为:%s\n", source);
return 0;
}
```
在这个示例代码中,我们定义了一个 `replace` 函数,用来实现替换功能。这个函数接受三个参数,分别是源字符串、目标字符串和替换字符串。
在函数内部,我们首先定义了一个缓冲区,用来存放替换后的字符串。然后我们定义了一个指针 `s`,用来指向源字符串的当前位置。然后我们使用 `strstr` 函数来查找目标字符串在源字符串中的位置,如果找到了目标字符串,我们就在缓冲区中复制替换字符串。如果没有找到目标字符串,我们就直接复制源字符串到缓冲区。最后,我们将缓冲区中的内容复制回源字符串。
在 `main` 函数中,我们首先输入源字符串、目标字符串和替换字符串,然后调用 `replace` 函数,最后输出替换后的字符串。
注意,这个示例代码并没有对边界情况进行考虑,实际应用中需要对边界情况进行处理,以保证程序的正确性。
阅读全文