下列给定程序中函数fun的功能足:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后捕入一个空格。 例如,若给a输入字符串:“ABCDEFGIIIJK”,调用函数后,字符数组b中的内容为:“ABE DEF GHI JK”。 请改正

admin2021-07-09  28

问题 下列给定程序中函数fun的功能足:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后捕入一个空格。
    例如,若给a输入字符串:“ABCDEFGIIIJK”,调用函数后,字符数组b中的内容为:“ABE DEF GHI JK”。
    请改正程序中的错误,使它能得出正确结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题程序:
#include<stdio.h>
void fun(char*P,char*b)
{int i,k=0;
    while(*P)
    {  i=1;
    while(i<=3&&*P){
/**********found***********/
    b[k]=P;
    k++;P++;i++;
    }
    if(*P)
    {
/**********found***********/
    b[k++]=“”;
    }
    }
    b[k]=‘\0’;)
main()
{  char a[80],b[80];
    printf(“Enter a string:”),
gets(a);
    printf(“The origLnal string:”),
    puts(a);
    fun(a,b);
    printf (“\nThe string after in
sert space:”);
  puts(b);printf(“\n\n”);
}

选项

答案(1)b[k]=*p; (2)b[k]=‘’;k++;

解析  (1)题目中p是指针型变量作函数参数,因此给b[k]赋值时出现错误。
    (2)题目要求复制三个字符后加一个空格,所以应该是先给b[k]赋值空格,然后变量k再加1。
转载请注明原文地址:https://jikaoti.com/ti/IMz0FFFM
0

最新回复(0)