给定程序MODI1.C中函数fun的功能是:判断ch中的字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。 请改正程序中的错误,使它能进行正确的操作。 注意:不要改动main函数,不得增行或删行,也不得

admin2015-08-23  23

问题 给定程序MODI1.C中函数fun的功能是:判断ch中的字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。
    请改正程序中的错误,使它能进行正确的操作。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
/************found************/
void fun(char str,char ch)
{    while  (*str&&*str !=ch)  str++,
/**********found**********/
    if(*str==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)str[1]=’0’;

解析 函数功能首先是查找子串再判断。
(1)第一个标识下,“void fun(char str,charch)”根据主函数中的fun函数的调用“fun(s,c)”,知道s为数组名,所以传的应该是数组地址,所以应改为“void fun(char*str ,char ch)”。
(2)while循环中对ch与str进行匹配检查,第二个标识下,是当不同时执行连接操作,那么判断*str与 ch是否不同的表达式应该是“if(*str!=ch)”。
(3)第三个标识下,连接后的新串要添加结尾符,所以正确的表达是将“str[1]=’0’;”改为“str[1]=’\0’;”。
转载请注明原文地址:https://kaotiyun.com/show/GTDp777K
0

最新回复(0)