爱问知识人 爱问教育 医院库

替换问题~~~

首页

替换问题~~~

下列给定程序中,函数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");}加粗的部分没有理解

提交回答
好评回答
  • 2006-02-27 21:14:37
      网页上没有显示有加粗的部分,我将其拷贝到了我的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");}。
      

    我***

    2006-02-27 21:14:37

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 174-193
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):