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;
}
原文:https://www.cnblogs.com/zhumengdexiaobai/p/13127410.html