问答题 编写函数fun,其功能是:将ss所指字符串中所有奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入“abc4EFg”,则应输出“aBc4EFg”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任伺内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
void fun(char*ss)
{
}
void main(void)
{
char tt[51];
printf("/nPlease enter an character string within 50 characters:/n");
gets(tt);
printf("/n/nAfter changing,the string/n%s", tt);
fun(tt);
printf("/nbecomes/n %s", tt);
}
【正确答案】
【答案解析】void fun (char *ss)
{
int i;
for(i=0; ss[i]!="/0"; i++) /*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/
if(i%2==1&&ss[i]>="a"&&ss[i]<="z")
ss[i]=ss[i]-32;
} [解析] 将指定字符串中奇数位置的字母转换为大写,首先需要我们判断奇数位置,再判断该位是不是小写字母,如果是小写字母,则将小写字母转换成大写字母。我们知道只要将小写字母减去32即可转成大写字母。