问题 问答题

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char *s),使其具有以下功能:
(1)把s中的大写字母转换成小写字母,把其中的小写字母转换成大写字母,并且在函数中调用写函数WriteFile()将结果输出到2.txt文件中。
例如:s="helloWORLD",则结果为“s="HELLOworld"”。
(2)完成函数WriteFile(char *s),把字符串输入文件中。
提示:打开文件使用的第二参数为“ios_base::binary|los_base::app”。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
void WriteFile(char *s)


void fun(char *s)


void ClearFile()

ofstream out1;
out1.open("2.txt");
out1.close();

int main()

ClearFile();
char s[1024];
cout<<"please input a string:"<<end1;
cin.getline(s,1024);
fun(s);
return 0;

答案

参考答案:(1)void WriteFile(char *s)中的命令语句:
ofstream out1;
out1.open("2.txt",ios_base::binary|ios_base::app);//打开文件2.txt
out1<<s;//写入字符串s
out1.close();
(2)void fun(char *s)中的命令语句:
for(int i=0;s[i]!=0;i++) //循环判断每一个字符
{
if(s[i])=’A’&&s[i](=’z’) //如果是大写字符,则转换为小写字符
{
s[i]=s[i]-’A’+’a’; //’s[i]-’A’+’a’等于字符s[i]+32’
else if(sill>=’a’&&s[i](=’z’)//如果是小写字符,则转换为大写字符
{
s[i]=s[i]-’a’+’A’; //’s[i]-’a’+’A’’等于字符s[i]-32
}
}
WriteFile(s);

解析: 在writeFile(char *s)函数中,利用标准流ofstream实现字符串写入文件2.txt。在fun函数中,利用for循环逐个判断字符是大写还是小写。如果是大写,那么加上32实现大写转换为小写。否则就减去32,实现小写到大写的转换。最后调用前面实现的WriteFile函数,将字符串写入文件。

单项选择题 A1/A2型题
辨析题