您的当前位置:首页>全部百科>百科问答详情
注:文章内容来源于网络,真实性有待确认,请自行甄别。

替换问题~~~下列给定程序中,函数fun的功能是:将s所指字符串

发表于:2024-10-24 00:00:00浏览:5次 分类: 电脑/网络-程序设计-C/C++
问题描述:下列给定中,函数fun的功能是:将s所指字符串中出现的t1所指子串全部替换成t2所指子字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如,当s所指字符串中的内容为abcdabfab,t1所指子串中的内容为ab,t2所指子串中内容为99时,结果,在w所指的数组中的内容应为99cd99f99。#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,char*t1,char*t2,char*w){inti下列给定中,函数fun的功能是:将s所指字符串中出现的t1所指子串全部替换成t2所指子字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如,当s所指字符串中的内容为abcdabfab,t1所指子串中的内容为ab,t2所指子串中内容为99时,结果,在w所指的数组中的内容应为99cd99f99。#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,char*t1,char*t2,char*w){inti;char*p,*r,*a;strcpy(w,s);while(*w){p=w;r=t1;while(*r)if(*r==*p){r++;p++;}elsebreak;if(*r=='\0'){a=w;r=t2;while(*r){*a=*r;a++;r++;}w+=strlen(t2);}elsew++;}}main(){chars[100],t1[100],t2[100],w[100];clrscr();printf("\nPleaseenterstrings:");scanf("%s",s);printf("\nPleaseentersubstringt1:");scanf("%s",t1);printf("\nPleaseentersubstringt2:");scanf("%s",t2);if(strlen(t1)==strlen(t2)){fun(s,t1,t2,w);printf("\nTheresultis:%s\n",w);}elseprintf(" (t1)!=strlen(t2)\n");}加粗的部分没有理解
上没有显示有加粗的部分,我将其拷贝到了我的VC环境中,添加了一些注释,可能有助于你的理解,我想你还可以通过设置断点进行调试,这样可以加深理解.下面是我加了注释的文件#include#include#includevoidfun(char*s,char*t1,char*t2,char*w){inti;char*p,*r,*a;//声明临时指针变量strcpy(w,s);//将初始字符串s的内容拷贝至字符串w中while(*w)//对字符串w的内容进行循环操作,对应最末尾的w++{p=w;r=t1;//对临时变量p,r赋值while(*r)//对字符串r进行循环,找出与字符串w相同的字符if(*r==*p)//如果找到就继续循环,使r,p(相当于w)均自增,否则就跳出循环{r++;p++;}elsebreak;if(*r=='\0')//当r的内容不再等于p中相应位置的值时,判断r(即要替换的字符串t1){//是否自增到了结尾,若不是,则令w继续自增a=w;//若是,就把w值赋给另一变量ar=t2;//令r等于要替换的字符串while(*r)//循环完成替换操作{*a=*r;//对字符串a(相当于w)和r对应位置的值进行替换a++;r++;}w+=strlen(t2);//交换完后,将w后移t2字符串的长度单位开始继续查找.比如说,}elsew++;}}main(){chars[100],t1[100],t2[100],w[100];//clrscr();printf("\nPleaseenterstrings:");scanf("%s",s);printf("\nPleaseentersubstringt1:");scanf("%s",t1);printf("\nPleaseentersubstringt2:");scanf("%s",t2);if(strlen(t1)==strlen(t2)){fun(s,t1,t2,w);printf("\nTheresultis:%s\n",w);}elseprintf(" (t1)!=strlen(t2)\n");}

猜你喜欢

C++基础题若intx=2,y=3;,则x&y的结果是:
若int x=2,y=3;,则x&y的结果是:
发表于:2024-10-24 00:00:00 浏览:39 分类: 电脑/网络-程序设计-C/C++
如何制作软件我想知道如何使用C++编写软件(具有可视化界面的软件
我想知道如何使用C++编写(具有可视化界面的软件)呢? 希望各位说的详细点,写谢了!
发表于:2024-10-24 00:00:00 浏览:38 分类: 电脑/网络-程序设计-C/C++
C++把大写改成小写用哪个函数?
++把大写改成小写用哪个函数?
发表于:2024-10-24 00:00:00 浏览:33 分类: 电脑/网络-程序设计-C/C++
哪里能下载中文版的《TheC++ProgrammingLangu?
哪里能下载中文版的《TheC++ProgrammingLangu?
发表于:2024-10-24 00:00:00 浏览:32 分类: 电脑/网络-程序设计-C/C++
哪个源码编辑器最好用?
哪个源码编辑器最好用?
发表于:2024-10-24 00:00:00 浏览:29 分类: 电脑/网络-程序设计-C/C++
C语言中整型可输出以0开头吗?要用C语言编一程序,输出以零开头的
要用编一程序,输出以零开头的一个多位整数,请问能以整型(或长整型)定义这个变量吗?谢谢!
发表于:2024-10-24 00:00:00 浏览:29 分类: 电脑/网络-程序设计-C/C++
C语言能人请进用C语言写一个程序,要求输入N个整数,按从小到大的
用写一个程序,要求输入N个整数,按从小到大的顺序输出,就说说思路。如果N=4,写个具体的程序。
发表于:2024-10-24 00:00:00 浏览:28 分类: 电脑/网络-程序设计-C/C++
求助指针变量怎么输出指针变量(存放变量地址的变量是指针变量,用来
怎么输出指针变量(存放变量地址的变量是指针变量,用来指向另一个变量。为了表示指针变量和他所指向的变量之间的关系,在中用“*”符号表示“指向”,。。。) *p怎么输出p
发表于:2024-10-24 00:00:00 浏览:24 分类: 电脑/网络-程序设计-C/C++
用循环找出长度为20的数组中的最大值
用循环找出长度为20的数组中的最大值
发表于:2024-10-24 00:00:00 浏览:23 分类: 电脑/网络-程序设计-C/C++
数据结构问题:如何用c或c++来实现线性表的顺序表的定义及操作?
如何用c或c++来实现线性表的顺序表的定义及操作?
发表于:2024-10-24 00:00:00 浏览:21 分类: 电脑/网络-程序设计-C/C++