写一个C程序完成字串替换操作,将串s中的字串t全部换成串v
答案:3 悬赏:40
解决时间 2021-02-17 13:01
- 提问者网友:星軌
- 2021-02-16 12:03
写一个C程序完成字串替换操作,将串s中的字串t全部换成串v
最佳答案
- 二级知识专家网友:雾月
- 2021-02-16 12:16
#include
#include
#include
char *strReplace(char *src, const char *oldstr, const char *newstr)
{
char *needle;
char *tmp;
if (strlen(oldstr) == strlen(newstr) && strcmp(oldstr, newstr) == 0)
{
return 0;
}
while ((needle = strstr(src, oldstr)))
{
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;
}
int main()
{
char *newstr;
char str[100]={NULL},olds[20]={NULL},news[20]={NULL};
printf("请输入源字符串: \n");
scanf("%s",str);
fflush(stdin);
printf("请输入需要替换的字符串: \n");
scanf("%s",olds);
fflush(stdin);
printf("请输入需要替换后的字符串: \n");
scanf("%s",news);
fflush(stdin);
newstr = strReplace(str,olds,news);
printf("替换后的结果: \n");
printf ("%s\n",newstr);
system("pause");
return 0;
}
#include
#include
char *strReplace(char *src, const char *oldstr, const char *newstr)
{
char *needle;
char *tmp;
if (strlen(oldstr) == strlen(newstr) && strcmp(oldstr, newstr) == 0)
{
return 0;
}
while ((needle = strstr(src, oldstr)))
{
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;
}
int main()
{
char *newstr;
char str[100]={NULL},olds[20]={NULL},news[20]={NULL};
printf("请输入源字符串: \n");
scanf("%s",str);
fflush(stdin);
printf("请输入需要替换的字符串: \n");
scanf("%s",olds);
fflush(stdin);
printf("请输入需要替换后的字符串: \n");
scanf("%s",news);
fflush(stdin);
newstr = strReplace(str,olds,news);
printf("替换后的结果: \n");
printf ("%s\n",newstr);
system("pause");
return 0;
}
全部回答
- 1楼网友:蕴藏春秋
- 2021-02-16 13:39
已写好,采纳后立即发送邮箱。
对提出的问题详细解答。
对提出的问题详细解答。
- 2楼网友:思契十里
- 2021-02-16 12:24
char s[]="Hello";
char s1[]="Good";
char *s2;
s2=strcpy(s,s1);
cout<<s2;
追问:能帮忙写个完整的吗?最好不要C++的
追答:我晕 我只是把输出的用C++的写出来了 其他都和C一样的。。。 你吧cout换成printf就行了!你这基础啊。。。
char s1[]="Good";
char *s2;
s2=strcpy(s,s1);
cout<<s2;
追问:能帮忙写个完整的吗?最好不要C++的
追答:我晕 我只是把输出的用C++的写出来了 其他都和C一样的。。。 你吧cout换成printf就行了!你这基础啊。。。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯