改错题
给定程序中函数fun的功能是:判断ch中的字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。
请改正程序中的错误,使它能进行正确的操作。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
#include <string.h>
/**********found**********/
void fun(char str, char ch)
{ while(*str&&*str!=ch)str++;
/**********found**********/
if (*sfr==ch)
{str[0]=ch;
/**********found**********/
str[1]='0';
}
}
main()
{ char s[81],c;
printf('\nPlease enter a string:\n'); gets(s);
printf ('\n Please enter the character to search: ');
c=getchar();
fun(s,c);
printf('\nThe result is%s\n', s);
}
【正确答案】(1)void fun(char *str, char ch) (2)if(*str!=ch) (3)st r[1]=0;
【答案解析】(1)第1个形参应该是字符串类型,所以应改为void fun(char *str, char ch)。 (2)应该是判断不相等,所以应改为if(*str! =ch)。 (3)赋值字符串结束符错误,所以应改为str[1]=0;。