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

admin2013-04-02  24

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

选项

答案void fun(char *str, char ch) if(*str !=ch) str[1]=’\0’;

解析 (1)第一个标识下,“void fun(char str, char ch)”根据主函数中的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/VJJp777K
0

最新回复(0)