请编写一个函数char*change(char instr[]),将输入字符串中的所有小写字母转换为大写字母输出。要求使用for循环实现。如输入jinfeiteng,则输出结果是JINFEITENG。 注意:部分源程序已存在文件test21_2.cp

admin2009-01-15  34

问题 请编写一个函数char*change(char instr[]),将输入字符串中的所有小写字母转换为大写字母输出。要求使用for循环实现。如输入jinfeiteng,则输出结果是JINFEITENG。
   注意:部分源程序已存在文件test21_2.cpp中。
   请勿修改主函数main和其他函数中的任何内容,仅在函数change的花括号中填写若干语句。
   文件test21_2.cpp的内容如下:
       char*change(char instr[]);
       #include"iostream.h"
       void main()
       {
       char instr[50];
       char  *outstr;
       cout<<"Input a string:"<<endl;
       cin>>instr;
       outstr=change(instr);
       cout<<"Over graded string:"<<endl;
       cout<<outstr<<endl;
       }
       char*change(char instr[])
       {
       }

选项

答案char *change(char instr[]) { char *outstr=new char[50]; const char delta=’A’-’a’; int i; for(i=0;instr[i]!=’\0’;i++) { if(instr[i] >=’a’ && instr[i] <=’z’) { outstr[i]=instr[i]+delta; } else { outstr[i]=instr[i]; } } outstr[i]=’\0’; return outstr; }

解析 本题考查的是考生使用for循环和一维数组的综合水平。对于大小写的ASCII码的差值可以通过delta=’A’-’a’运算得到,注意在字符串的结尾加入结束标志符’\0’。
转载请注明原文地址:https://kaotiyun.com/show/NKID777K
0

最新回复(0)