给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,Z转换为a),其他字符不变。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,

admin2019-04-04  29

问题 给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,Z转换为a),其他字符不变。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
void fun(char*s)
{
/**********found***********/
  whiie(*s!=’@’)
  {    if(*s>=’A’  &&*s<=’z’ ||  *s>=’a’
&&*s<=’z’)
    {  if(*s==’z’)*s=’A’;
    else i f(*s==’z’)*s=’a’;
    else*s+=1;
    }
/************found************/
    (*s)++;
  }
}
main()
{  char s[80];
  printf("\n Enter a string with
length<8 0.:\n\n");getS(s);
  printf("\n The string:\n\n");
putS(s);
  fun(s);
  printf("\n\n The Cords:\n\n");
puts(s);
}

选项

答案(1)while(*s) 或while(*s!=’\0’)或while (*s!=0) (2)s++;

解析 函数的功能是将字符串中的字母改为该字母序列的后续字母。
(1)第一个错误标识下的“while(*s!=’@’)”语句原意是s不指向字符串尾就进入下面的循环,所以对于指针判断不为尾符的语句应该是“while(*s)”或者“while(*s!=’\0’)”或者“while(*s!=0)”。
(2)第二个标识下“(*s)++;”是对字符内容加1,而原题是对字符位置加1,所以将其改为“s++;”。
转载请注明原文地址:https://jikaoti.com/ti/rHf0FFFM
0

最新回复(0)