问题
问答题
请编写一个函数void fun(char*ss),其功能是:将字符串 ss中所有下标为偶数位置上的字母转化为大写(若该位置上不是字母,则不转换)。
例如,若输入abc4Efg,则应输出AbC4EfG。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio. h>
#include<stdio. h>
void fun ( char *ss)
main ( )
char tt[51];
clrscr ();
printf("Please 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++) {
if(i%2==0 && ss [i]>=’a’ && ss [i]<=’z’) /*将ss所指字符串中所有下标为偶数位置的字母转换成大写*/
ss[i]==ss[i]-32;} /*大写字母比相应的小写字母的ASCII码值小32*/
}
解析: 从C语言的学习中我们知道,只要将小写字母减去32则转换成大写字母,将大写字母加上32则转成小写字母,该程序使用if语句实现该功能转换的。