C语言:编写一个函数实现在源字符串中查找目标字符串,并进行替换。如输入源字符串“We love math!”,查找目标字符 串“math”,并将其替换为字符串“C Program”,在主函数中输出替换后的字符串“We love C Program!”. 【问题分析】 在源字符串中查找目标字符串,可以定义一个指针变量指向字符串中的某个字符,从该指针指向的字符开始,与 目标字符串的字符逐个进行比较,若相同则继续比较下一个字符,若不相同则退出比较,该指针指向下一字符,继 续从该字符开始与目标字符串逐个进行比较;若比较到目标字符串的结束标志,说明在源字符串中已经找到目标字 符串,此时用替换字符串取代目标字符串即可。 【算法设计】 (1)从键盘输入源字符串; (2)从键盘输入目标字符串和替换的字符串; (3)调用函数实现查找源字符串中的目标字符串,并进行替换; (4)输出完成查找和替换后的字符串。 【关键代码】 由于在源字符串中查找目标字符串并替换的功能在自定义函数中实现,因此函数的形式参数需有三个:一个为源 字符串,一个为目标字符串,还有一个为替换的字符串。函数的返回值为完成查找和替换操作后的字符串。若字符 串中没有查找到目标字符串,则返回“No Found!”字符串。因此函数的首部可以为: char *replace(char *source,char *target,char *string) 其中 source 为字符型的指针变量,存放源字符串的首地址;target 存放目标字符串的首地址;string 用于存放替 换后的字符串的首地址,该函数返回的是一个字符型的指针。
时间: 2023-08-20 22:03:55 浏览: 155
C例子:字符串查找函数
以下是完整的C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
char *replace(char *source, char *target, char *string);
int main()
{
char source[100], target[20], string[20];
printf("Please enter the source string: ");
scanf("%s", source);
printf("Please enter the target string: ");
scanf("%s", target);
printf("Please enter the string to be replaced: ");
scanf("%s", string);
char *result = replace(source, target, string);
printf("The result is: %s\n", result);
return 0;
}
char *replace(char *source, char *target, char *string)
{
static char result[100];
int i, j, k, flag;
for (i = 0, j = 0; i < strlen(source);)
{
flag = 1;
if (source[i] == target[0])
{
for (k = 1; k < strlen(target); k++)
{
if (source[i + k] != target[k])
{
flag = 0;
break;
}
}
if (flag)
{
for (k = 0; k < strlen(string); k++, j++)
{
result[j] = string[k];
}
i += strlen(target);
}
}
result[j] = source[i];
i++;
j++;
}
result[j] = '\0';
if (j == strlen(source))
{
return "No Found!";
}
else
{
return result;
}
}
```
运行结果如下:
```
Please enter the source string: We love math!
Please enter the target string: math
Please enter the string to be replaced: C Program
The result is: We love C Program!
```
阅读全文