用c语言查找英文句子中并替换某个单词
答案:1 悬赏:60
解决时间 2021-01-27 20:14
- 提问者网友:活着好累
- 2021-01-27 03:05
用c语言查找英文句子中并替换某个单词
最佳答案
- 二级知识专家网友:末日狂欢
- 2020-11-04 08:28
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
char str[10] = "111222333";
// 字符串替换(源字符串, 旧字符串, 新字符串)
char *strReplace(char *src, const char *oldstr, const char *newstr, int len)
{
char *needle;
char *tmp;
if (strlen(oldstr) == strlen(newstr) && strcmp(oldstr, newstr) == 0)
{
return 0;
}
while ((needle = strstr(src, oldstr)) && (needle - src <= len))
{
tmp = (char*)malloc(strlen(src) + (strlen(newstr) - strlen(oldstr)) +1);
strncpy(tmp, src, needle-src);
tmp[needle-src] = '\0';
strcat(tmp, newstr);
strcat(tmp, needle+strlen(oldstr));
src = strdup(tmp);
free(tmp);
}
return src;
}
main()
{
char *an;
printf ("%s\n",str);
an = strReplace(str,"111","000",3);
printf ("%s\n",an);
}
#include <stdlib.h>
#include<string.h>
char str[10] = "111222333";
// 字符串替换(源字符串, 旧字符串, 新字符串)
char *strReplace(char *src, const char *oldstr, const char *newstr, int len)
{
char *needle;
char *tmp;
if (strlen(oldstr) == strlen(newstr) && strcmp(oldstr, newstr) == 0)
{
return 0;
}
while ((needle = strstr(src, oldstr)) && (needle - src <= len))
{
tmp = (char*)malloc(strlen(src) + (strlen(newstr) - strlen(oldstr)) +1);
strncpy(tmp, src, needle-src);
tmp[needle-src] = '\0';
strcat(tmp, newstr);
strcat(tmp, needle+strlen(oldstr));
src = strdup(tmp);
free(tmp);
}
return src;
}
main()
{
char *an;
printf ("%s\n",str);
an = strReplace(str,"111","000",3);
printf ("%s\n",an);
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯