请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入’’abc4Efg’’,则应输出’’aBc4EFg’’。 注意:部分源程序在文件PROG1.C中。

admin2020-10-26  22

问题 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
    例如,若输入’’abc4Efg’’,则应输出’’aBc4EFg’’。
    注意:部分源程序在文件PROG1.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
    试题程序:
1  #include<conio.h>
2  #include<stdio.h>
3   #include<string.h>
4   #include<stdlib.h>
5   void fun(char * ss)
6  {
7
8   }
9  void main()
10  {
11  FILE*wf;
12  char tt[81],s[81]=’’abc4Efg’’;
13  system(’’CLS’’);
14  printf(’’\nPlease enter an strina within 80 characters:\n’’);
15  gets(tt);
16   printf(’’\n\nAfter changing,the string\n%s’’,tt);
17   fun(tt);
18   printf("\nbecomes\n%s\n’’,tt);
19    /*****************/
20  wf=fopen(’’out.dat’’,…’’w’’);
21  fun(s);
22  fprintf(wf,’’%s’’,s);
23  fclose(wf);
24    /*****************/
25   }

选项

答案1 void fun(char *ss) 2 { 3 int i; 4 for(i=0;ss[i]!=’\0’;i++)/*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/ 5 if(i%2==1&&ss[i]>=’a’&&ss[i]<=’z’) 6 ss[i]=ss[i]-32 ; 7 }

解析 该题要求将给定字符串中奇数位置的字母转换为大写,需要先判断奇数位置以及是否是小写字母,如果是再通过其转换方法进行转换。
    从C语言的学习中知道,只要将小写字母减去32即转成大写字母,将大写字母加上32即转成小写字母。本程序用if语句实现转换功能。
转载请注明原文地址:https://kaotiyun.com/show/f33p777K
0

最新回复(0)