下列给定程序中,函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制4个字符之后插入一个空格。 例如,若给a输入字符串:ABCDEFGHIJK,调用函数后,字符数组b中的内容为:ABCD EFGH IJK。 请改正程序中的错误,使它能得出正

admin2021-02-25  30

问题 下列给定程序中,函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制4个字符之后插入一个空格。
例如,若给a输入字符串:ABCDEFGHIJK,调用函数后,字符数组b中的内容为:ABCD EFGH IJK。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MOD11.C中,不得增行或删行,也不得更改程序的结构。
#include
void fun(char*P,char*b)
{int i,k=0;
while(*p)
{i=1;
while(i<=4&&*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 original string:’’);puts(a);
fun(a,b);
printf(’’\nThe string after insert space:’’);puts(b);printf(’’\n\n’’);
}

选项

答案1.b[k]=*p; 2.b[k]=’’;k++;

解析 1.题目中p是指针型变量作函数参数,因此给b[k]赋值时出现错误。
2.题目要求赋值4个字符后加一个空格,所以应该是先给b[k]赋值空格,然后变量k再加1。
C语言中为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”,表示“指向”,例如,pointer代表指针变量,而*pointer是pointer所指向的变量。
转载请注明原文地址:https://jikaoti.com/ti/u6z0FFFM
0

最新回复(0)