编写一个函数实现从源字符串中查找目标字符串,并进行替换。如输入源字符串“We love math!" ,查找目标字符串“math",并将其替换为字符串“CProgram”,在主函数中输出替换后的字符串“Welove C Program ! (1)从键盘输入源字符串; (2)从键盘输入目标字符串和替换的字符串; (3)调用函数实现查找源字符串中的目标字符串,并进行替换; . (4)输出完成查找和替换后的字符串。
时间: 2023-08-21 10:04:17 浏览: 80
在主函数中输入一含有大写字母的字符串,调用该函数并输出改变后的字符串。
好的,以下是实现该功能的函数代码:
```c
#include <stdio.h>
#include <string.h>
void replaceString(char *source, char *target, char *replace)
{
int sourceLen = strlen(source);
int targetLen = strlen(target);
int replaceLen = strlen(replace);
char *pos = source;
while ((pos = strstr(pos, target)) != NULL)
{
memmove(pos + replaceLen, pos + targetLen, strlen(pos + targetLen) + 1);
memcpy(pos, replace, replaceLen);
pos += replaceLen;
sourceLen += replaceLen - targetLen;
}
}
int main()
{
char source[100];
char target[20];
char replace[20];
printf("请输入源字符串:");
fgets(source, sizeof(source), stdin);
source[strlen(source) - 1] = '\0';
printf("请输入目标字符串:");
scanf("%s", target);
printf("请输入替换字符串:");
scanf("%s", replace);
replaceString(source, target, replace);
printf("替换后的字符串为:%s\n", source);
return 0;
}
```
在上述代码中,我们定义了一个 `replaceString` 函数来实现从源字符串中查找目标字符串,并进行替换的功能。该函数接受三个参数,分别为源字符串、目标字符串和替换字符串。具体实现采用了字符串函数 `strstr` 和 `memmove`,其中 `strstr` 函数用于查找目标字符串在源字符串中的位置,`memmove` 函数用于将目标字符串后面的子串向后移动,从而实现替换操作。
在主函数中,我们首先从键盘读入源字符串、目标字符串和替换字符串,然后调用 `replaceString` 函数实现查找和替换操作。最后输出替换后的字符串。注意,这里我们使用了 `fgets` 函数来读入源字符串,因为它可以读入包括空格在内的整行字符串。而对于目标字符串和替换字符串,我们使用了 `scanf` 函数来读入,因为它可以读入不包含空格的字符串。
阅读全文