码迷,mamicode.com
首页 > 编程语言 > 详细

c语言实现变种 replace()

时间:2020-06-14 23:52:49      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:else   main   lse   print   内容   c语言实现   class   string   char   

 1 函数fun将字符串s中第一次出现的子字符串t1替换成字符串t2,替换后的新串放在w所指的数组中,
 2 要求t1和t2所指向的字符串长度相同。
 3 例如:当s所指字符串中的内容为"abcdab",t1中的内容为"ab",t2中的内容为"cc"时,结果w所指
 4 数组中的内容应为"cccdab" 5 
 6 程序有多处错误,请在答题框中写出错误的行号和修改后的内容。
 7 
 8 1    int fun(char *s, char *t1, char *t2 , char *w)            
 9 2    {            
10 3      int   i;              
11 4      char   *p , *r, *a;            
12 5      strcpy( w, s );            
13 6      while ( *w )            
14 7      {            
15 8        p = w;               
16 9        r = t1;        
17 10       while ( *r )            
18 11            if ( *r == *p )        
19 12            {        
20 13              r++21 14              p++;        
22 15            }        
23 16            else        
24 17              break;        
25 18        if ( *r )             
26 19        {            
27 20            a = w;        
28 21            continue;        
29 22        }        
30 23        w++;            
31 24      }            
32 25      r = t2;            
33 26      while ( *r )            
34 27      {            
35 28        *a = *r;            
36 29        a++;            
37 30        r++;            
38 31      }            
39 32    }            
40 
#include <stdio.h>
#include <string.h>

void fun(char *s, char *t1, char *t2 , char *w)            
{            
   int i;              
   char *p, *r, *a;           
   strcpy(w, s);          
   while(*w)            
   {            
		p = w;               
     	r = t1;        
    	while(*r){        
	    	if ( *r == *p ){        
	    		r++; 
	    		p++;        
	        }        
	        else        
	           break;     //2
		}        
	    if (*r == ‘\0‘)   //3          
	    {            
	         a = w;         
	         break;        
	     }        
	     w++;            
    }            
    r = t2;  
//	printf("%c\n", *a);       
    while ( *r )            
    {            
         *a = *r;     //1       
         a++;            
         r++;            
    }            
}    

main(){
	char s[50] = "abcdab";
	char t1[50] = "ab";
	char t2[50] = "cc";
	char w[50];
//	char *s = "abcdab";
//	char *t1 = "ab";
//	char *t2 = "cc";
//	char *w;	
	 
  	fun(s, t1, t2, w);
  	
  	printf("%s", w);
  	
	return 0;
}

  

c语言实现变种 replace()

标签:else   main   lse   print   内容   c语言实现   class   string   char   

原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/13127410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!