编写一个两数实现从源字符串中查找目标字符串,并进行替换。如输入源字符串“Welovemath!” 查找目标字符串“math”,并将其替换为字符串“CProgram”,在主两数中输出替换后的字符串“We lloveCProgram!”. 【问题分析】 在源字符串中查找目标字符串,可以定义一个指针变量指向字符串中的某个字符,从该指针指向 的字符开始,与目标字符串的字符逐个进行比较,若相同则继续比较下一个字符,若不相同则退出 比较,该指针指向下一字符,继续从该字符开始与目标字符串逐个进行比较:若比较到目标字符串 的结束标志,说明在源字符串中已经找到目标字符串,此时用替换字符串取代目标字符串即可。 【算法设计】 (1)从键盘输入源字符串: (2)从键盘输入目标字符串和替换的字符串; (3)调用两数实现查找源字符串中的目标字符串,并进行替换: (④)输出完成查找和替换后的字符串。 【关键代码】 由于在源字符串中查找目标字符串并替换的功能在自定义西数中实现,因此函数的形式参数需有 三个:一个为源字符串,一个为目标字符串,还有一个为替换的字符串。函数的返回值为完成查找 和替换操作后的字符串。若字符串中没有查找到目标字符串,则返回“NoFound!〞字符串。因此 函数的首部可以为: char*replace(char*source.char*target.char*string) 其中source为字符型的指针变量,存放源字符串的首地址;target存放目标字符串的首地址; string用于存放替换后的字符串的首地址,该西数返回的是一个字符型的指针。
时间: 2023-08-20 17:05:07 浏览: 85
写自定义函数stringLower()实现将一个字符串中所有大写字母变为小写字母。在主函数中输入一含有大写字母的字符串,调用该函数并输出改变后的字符串。
5星 · 资源好评率100%
以下是使用 C 语言编写的代码示例:
```c
#include <stdio.h>
#include <string.h>
char* replace(char* source, char* target, char* string) {
char* result = source;
char* p = source;
char* q = target;
char* r = string;
int len1 = strlen(source);
int len2 = strlen(target);
int len3 = strlen(string);
while (*p != '\0') {
if (*p == *q) {
char* temp = p;
while (*q != '\0' && *p == *q) {
p++;
q++;
}
if (*q == '\0') {
char* temp1 = p;
while (*r != '\0') {
*temp = *r;
temp++;
r++;
}
while (*temp1 != '\0') {
*temp = *temp1;
temp++;
temp1++;
}
*temp = '\0';
return result;
}
q = target;
p = temp;
}
p++;
}
return "NoFound!";
}
int main() {
char source[] = "Welovemath!";
char target[] = "math";
char string[] = "CProgram";
char* result = replace(source, target, string);
printf("%s\n", result);
return 0;
}
```
输出结果为:
```
We lloveCProgram!
```
这段代码中,首先定义了源字符串、目标字符串和替换字符串。然后定义了一个自定义函数 `replace`,该函数接收三个字符型指针变量,分别表示源字符串、目标字符串和替换字符串,函数返回值为字符型指针。在函数内部,使用指针变量 `p`、`q` 和 `r` 分别指向源字符串、目标字符串和替换字符串的首地址,使用 `while` 循环实现从源字符串中查找目标字符串,并进行替换。最后在 `main` 函数中调用自定义函数 `replace` 并打印输出结果。
阅读全文