请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入abc4Efg,则应输出aBc4EFg。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <conio.h> #include <stdio.h> #include <string.h> void fun(char *ss) {} main() { char tt[81]; clrscr(); printf("\nPlease enter an string within 80 characters:\n"); gets(tt); printf("\n\nAfter changing, the string\n \%s", tt); fun(tt); printf("\nbecomes\n\%s\n",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; } 从C语言的学习中我们知道,只要将小写字母减去32则转成大写字母,将大写字母加上32则转成小写字母。该程序是用if语句实现该功能转化的。