编写一个函数实现从源字符串中查找目标字符串,并进行替换。如输入源字符串“We love math!”, 查找目标字符串“math”,并将其替换为字符串“C Program”,在主函数中输出替换后的字符串“We love C Program!”.
时间: 2024-01-21 22:03:44 浏览: 56
好的,以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <string.h>
void replaceString(char source[], char target[], char replacement[]) {
int i, j, k;
int sourceLen = strlen(source);
int targetLen = strlen(target);
int replacementLen = strlen(replacement);
char temp[100];
for (i = 0; i <= sourceLen - targetLen; i++) {
if (strncmp(&source[i], target, targetLen) == 0) {
// 找到目标字符串,将其替换为replacement
for (j = 0, k = 0; j < i; j++, k++) {
temp[k] = source[j];
}
for (j = 0; j < replacementLen; j++, k++) {
temp[k] = replacement[j];
}
for (j = i + targetLen; j < sourceLen; j++, k++) {
temp[k] = source[j];
}
temp[k] = '\0';
strcpy(source, temp);
sourceLen = strlen(source); // 更新源字符串长度
i += replacementLen - targetLen; // 更新i的值
}
}
}
int main() {
char source[] = "We love math!";
char target[] = "math";
char replacement[] = "C Program";
replaceString(source, target, replacement);
printf("%s\n", source);
return 0;
}
```
该程序中的`replaceString`函数实现了从源字符串中查找目标字符串,并进行替换。其中,`strncmp`函数用于比较字符串的前n个字符,`strcpy`函数用于将temp中的内容复制到source中。在主函数中,我们定义了源字符串、目标字符串和替换字符串,然后调用`replaceString`函数进行替换,并输出替换后的字符串。
阅读全文