下列给定的程序中,函数fun()的功能是;将s所指字符串中出现的n所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如:当s所指字符串中所指的内容为 abcdabfab,t1所指字符串中的内容为ab,t2所指字符串中的内容为99时,结果在w所指的数组中的内容应为99cd99f99。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <conio.h>inc

题目

下列给定的程序中,函数fun()的功能是;将s所指字符串中出现的n所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如:当s所指字符串中所指的内容为 abcdabfab,t1所指字符串中的内容为ab,t2所指字符串中的内容为99时,结果在w所指的数组中的内容应为99cd99f99。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <conio.h>

include <stdio.h>

include <string.h>

/*************found**************/

int fun (char *s, char *t1, char *t2, char *w)

{

int i; char *p,*r,*a;

strcpy(w,s);

while (*w)

{p=w; r=t1;

/*************found**************/

while (r)

if (*r= =*p) {r++;p++;}

else break;

if (*r= ='\0')

{a=w; r=t2;

/*************found**************/

while (*r){*a=*r;a++;r++}

w+=strlen(t2);

}

else w++;

}

}

main()

{char s[100],t1[100],t2[100],w[100];

clrscr();

printf("\nPlease enter string S: ");

scanf("%s",s);

printf("\nPleaseentersubstring t1: ");

scanf ("%s", t1);

printf("\nPlease enter substring t2: ");

scanf ("%s",t2);

if (strlen(t1)= =strlen(t2))

{

fun (s,t1,t2,w);

printf("\nThe result is : %s\n",w);

}

else printf("Error : strlen(t2)\n");

}


相似考题
更多“下列给定的程序中,函数fun()的功能是;将s所指字符串中出现的n所指字符串全部替换成t2所指字符串, ”相关问题
  • 第1题:

    下列函数的功能是

    fun(char *a,char *B)

    { while((*b=*A)! =‘\O’) {a++;b++;}}

    A.将a所指字符串赋给b所指空间

    B.使指针b指向a所指字符串

    C.将a所指字符串和b所指字符串进行比较

    D.检查a和b所指字符串中是否有‘\O’


    正确答案:A
    解析:表达式*b=*a是将a所指的字符赋给b所指的空间,然后,指针a和b依次后移,直到到达指针a所指字符串的结尾。

  • 第2题:

    下列函数的功能是( )。 fun(char*a,char*b) . {while((*b=*a)!=\0){a++;b++;})

    A.将a所指字符串赋给b所指空间

    B.使指针b指向a所指字符串

    C.将a所指字符串和b所指字符串进行比较

    D.检查a和b所指字符串中是否有\O


    正确答案:A
    本题函数的功能是将a所指向的字符串赋给b所指向的空间。

  • 第3题:

    给定程序MODll.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。

    例如,当s所指字符串为:“ABCD”时,则t所指字符串中的内容应为:“ABCDDCBA”。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)void fun(char*s char*t) (2)t[2*d]=‘\0’;
    (1)void fun(char*s, char*t) (2)t[2*d]=‘\0’; 解析:本题中函数的功能是将字符串的正序和反序进行连接。题目中首先由字符串的起始位置正序取字符,然后再由串尾逆序取字符,实现正序和逆序的连接。

  • 第4题:

    下列函数的功能是( )。 A.将a所指字符串赋给b所指空间B.使指针b指向a所指字符串SXB

    下列函数的功能是( )。

    A.将a所指字符串赋给b所指空间

    B.使指针b指向a所指字符串

    C.将a所指字符串和b所指字符串进行比较

    D.检查a和b所指字符串中是否有’\0


    正确答案:A
    表达式*b=*a是将a所指的字符赋给b所指的空间,然后,指针a和b依次后移,直到到达指针a所指字符串的结尾。

  • 第5题:

    给定程序MODll.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。

    例如:当s所指的字符串为:“ABCDE”时,则t所指的字符串应为:“EDCBAABCDE”。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)int isl; (2)t[i]=s、[sl-i-1];
    (1)int i,sl; (2)t[i]=s、[sl-i-1]; 解析:本题中函数的功能是先将字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。解题思路是首先对字符串进行逆序存放,然后再把字符串正序连接在串后。