问答题
请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入"abc4Efg",则应输出"aBc4EFg"。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#include < stdio.h >#include < string.h >#include < stdlib.h >void fun(char*ss){}void main(){ FILE*wf; char tt[81],s[81]="abc4Efg"; system("CLS"); printf("/nPlease enter an stringwithin 80 characters:/n"); gets(tt); printf("/n/nAfter changing,the string/n%s",tt); fun(tt); printf("/nbecomes/n%s/n",tt);/******************/ wf=fopen("out.dat","W"); fun(s); fprintf(wf,"%s",s); fclose(wf);/******************/}
【正确答案】正确答案:void fun (char *ss) { int i; for(i=;ss[i]!='/0';i++) /*将ss所指字符串中所有下标为奇数 位置的字母转换为大写*/ if(i%2==1&&ss[i] >='a'&&ss[i] <='z') ss[i]=ss[i]一32; }
【答案解析】解析:该题要求将给定字符串中奇数位置的字母转换为大写,需要先判断奇数位置以及是否是小写字母,如果是再通过其转换方法进行转换。从C语言的学习中知道,只要将小写字母减去32即转成大写字母,将大写字母加上32即转成小写字母。本程序用if语句实现转换功能。