请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入″abc4Efg″,则应输出″aBc4EFg″。 注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括

admin2019-04-14  33

问题 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入″abc4Efg″,则应输出″aBc4EFg″。
注意:请勿改动主函数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 string within 80 characters:\n″);
gets(tt);
printf(″\nAfter changing,the string\n%s″,tt);
fun(tt);
printf(″\nbeecomes\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=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语句实现转换功能。
转载请注明原文地址:https://jikaoti.com/ti/3Hf0FFFM
0

最新回复(0)