使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.C。在此程序中,请编写一个函数fun,它的功能是:将SS所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。 例如,

admin2020-06-02  24

问题 使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.C。在此程序中,请编写一个函数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=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://kaotiyun.com/show/keCp777K
0

最新回复(0)