问题 问答题

请编写一个函数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’。

单项选择题
多项选择题