问答题 请编写一个函数proc(),它的功能是:将str所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入ab7g88BJ,则应输出aB7G88BJ。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlih.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void proc(char*str)
{

}
void main()
{
char tt[81];
system("CLS");
printf("/nPlease enter an string within 80 characters:/n");
gets(tt);
printf("/n/nAfter changing, the string/n %s", tt);
proc(tt);
printf("/nbecomes/n%s/n", tt);
}
【正确答案】
【答案解析】void proc(char*str)
{
int i;
for(i=0; str[i]!="/0"; i++)
if(i%2!=0&&str[i]>="a"&&str[i]<="z")
//找出下标为奇数且为小写字母的元素
str[i]=str[i]=32; //转化为大写
} [解析] 题目要求把下标为奇数的小写字母转化为大写,需要检查字符串中下标为奇数的字符是否为小写字母。若是小写字母则将其转换为大写字母,若不是则不做任何变化。大写字母与小写字母的关系为ASCII码值相差32。