写一个C程序完成字串替换操作,将串s中的字串t全部换成串v

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一个C程序完成字串替换操作,将串s中的字串t全部换成串v相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* 字符串替换(源字符串, 旧字符串, 新字符串) */
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;
参考技术A char s[] ="Hello";
char s1[]="Good";
char *s2;
s2=strcpy(s,s1);
cout<<s2;追问

能帮忙写个完整的吗?最好不要C++的

追答

我晕 我只是把输出的用C++的写出来了 其他都和C一样的。。。 你吧cout换成printf就行了!你这基础啊。。。

参考技术B 已写好,采纳后立即发送邮箱。
对提出的问题详细解答。

vi的使用—查找与替换

/word  向光标之下寻找一个名称为 word 的字串

?word  向光标之上寻找一个字串名称为 word 的字串


n 向下继续查找

N 向上继续查找


:n1,n2s/word1/word2/g  在第 n1 与 n2 列之间寻找word1 这个字串,并将该字串取代为word2

:1,$s/word1/word2/g    从第一列到最后一列寻找 word1 字串,并将该字串替换为word2

:1,$s/word1/word2/gc   从第一列到最后一列寻找 word1 字串,并将该字串替换为word2,确认替换?

本文出自 “无法言喻” 博客,请务必保留此出处http://limeixiong.blog.51cto.com/1888920/1973635

以上是关于写一个C程序完成字串替换操作,将串s中的字串t全部换成串v的主要内容,如果未能解决你的问题,请参考以下文章

vi的使用—查找与替换

Bitset与字串

python中,如何去掉字串自带的引号

sed初识

LeetCode第30题: 与所有单词相关联的字串

Leetcode——30.与所有单词相关联的字串##