下列给定程序中 函数fun()的功能是;将s所指字符串中的字母转换为按字母序列的后续字母(但
问题详情
下列给定程序中,函数fun()的功能是;将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为 a),其他字符不变。
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio.h>
include <ctype.h>
include <conio.h>
void fun(char *s)
/*************found**************/
{ while(*s!="@")
{ if(*s>="A" &*s<="z"||*s>="a"&&*s<="z")
{if(*s=="Z") *S="A";
else if(*S=="z") *s="a";
else *s+=1;
}
/*************found**************/
(*s)++;
}
}
main()
{ char s[80];
clrscr();
printf("n Enter a string with length <80:nn");gets(s);
printf("n The string:nn");puts(s);
fun(s);
printf("nn The Cords:nn");puts(s);
}请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:(1)错误:while(*s!='@') 正确:while(*s)(2)错误:(*s)++; 正确:s++;
(1)错误:while(*s!='@') 正确:while(*s)(2)错误:(*s)++; 正确:s++; 解析:根据题目要求,可对字符串所有字母进行遍历。对每一个字母,若该字母为'z'或'Z',将该字母改成'a'或'A',即 ASCII码值减25,当然也可以用题目中的if语句来实现转换。若该字母不是'z'或'Z',则该字母的ASCII码值加1;对字符串所有字符重复以上过程即可得到题目要求的结果,可用循环语句和条件语句来实现。