下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母’F’。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include void proc(cha

admin2012-07-18  25

问题 下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母’F’。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
void proc(char * str)
{
  int i,j;
  //****found****
  for(i=j=0;str!=’0’;i++)
  if(str!=’F’)
  //****found****
  str[j]=str
  str[j]=’0’;
}
void main()
{
  char str[80];
  printf(”\nEnter a string:”);
  gets(str);
  printf(”The original string:”);
  puts(str);
  proc(str);
  printf(”The string after deleted:”);
  puts(str);
  printf(”\n\n”);
}

选项

答案(1)错误:for(i=j=0;str[i]!=’0’;i++) 正确:for(i=j=0;str[i]!:’\0’;i++) (2)错误:str[j]=str[i]; 正确:str[j++]=str[i];

解析 根据题目中的要求,从字符串str中删除所有大写字母’F’,需要检查字符串str中的每一个字符,直到字符串结束,因此,“for(i=j=0;str!=’0’;i++)”应改为“for(i=j=0;str!=’\0’;i++)”;将每一个不是’F’的字符放入原来的字符串中,形成新的字符串,因此,“str[j]=str;”应改为“str[j++]=str;”。
转载请注明原文地址:https://kaotiyun.com/show/SDID777K
0

最新回复(0)