使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*s),该厢数完成以下功能: (1)把S中的大写字母转换成小写字母,把其中的小写字母转换战人写字母。并且在函数中调用写函数WriteFile()将结果输出到modi2.tx

admin2013-09-11  12

问题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*s),该厢数完成以下功能:
(1)把S中的大写字母转换成小写字母,把其中的小写字母转换战人写字母。并且在函数中调用写函数WriteFile()将结果输出到modi2.txt文件中。例如:s=”helloTEST”,则结果为:s=“HELLOtest”
(2)完成蛹数WriteFile(char*s),把字符串输入文件中。提永:打开文件使用的第二参数为ios—base::binarylios—base::app。
注意:不要改动main()数,不得增行或删行,也不得更改程序的结构。
    #include
    #include<:fstream>
    #include
    using namespace std:
    void WriteFile(char*S)
    {
    }
    void fun(char*s)
    {
    }
    void ClearFile()
    {
    ofstream outl;
    outl.open(“modi2.txt”):
    out 1.close();
    }
    int main()
    {
    ClearFile();
    char s[1 024];
    cout<<“please input a string:”<    cin.getline(s,1 024);
    fun(s);
    return 0:
    }

选项

答案(1)void WriteFile(char*s)中的命令语句: ofstream outl; outl.open(“modi2.txt”,ios—base::binarylios_base::app);//打开文件modi2 outl<=A&&s[i]<=Z) ∥如果是大写字符,转换为小写字符 { s[i]=s[i]=s[i]-A+a; //a[i]A+a等于s[i]+32 } Else if(s[i]>=a&&s时<=Z) ∥如果是小写字符,转换为大写字符 { s[i]=s[i]-a+A; //s[i]-a+A等于字符s[i]-32 } } WriteFile(s);

解析 (1)本题要求实现两个函数的功能,其中WfiteFile(char*s)实现把字符串输入到文件中:fun(char*s)函数实现大写字母转换成小写字母,把其中的小写字母转换成大写字母。其中大小写字母之间的ASCII码差为32。
(2)从已给部分源程序的main主函数开始入手,首先实现WriteFile函数,然后再实现fun函数,并在其中调用WriteFile函数。
[解题思路]
(1)在WriteFile(char*s1函数中,利用标准流ofstream实现字符串写入文件modi2.txt。
(2)在fun函数中,利用for循环逐个判断字符是大写还是小写。
(3)如果是大写,那么加上32实现大写转换为小写。否则,就减去32,实现小写到大写的转换。最后调用前面实现的WriteFile函数,将字符串写入文件。
转载请注明原文地址:https://jikaoti.com/ti/neXiFFFM
0

最新回复(0)