大写变小写 小写变大写的小程序

// test2.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <cctype>
int main()
{
using namespace std;
char s;
cout<<"输入一个字符"<<endl;
cin>>s;
while(s!='@')
{
if(isupper(s))
{
cout<<tolower(s)<<endl;
cin>>s;
}
else if(islower(s))
{
cout<<toupper(s)<<endl;
cin>>s;
}
}
return 0;
}
我这个不对吗,为什么,程序要求输入@时候退出,我这个总显示数字,请帮忙~~

作者: gh2126002   发布时间: 2011-06-13

cout<<(char)toupper(s)<<endl;

另外@换一个吧,会当做组合符号被处理

作者: bdmh   发布时间: 2011-06-13

C/C++ code

#include <iostream>
#include <cctype>
int main()
{
    using namespace std;
    char s;
    cout<<"输入一个字符"<<endl;
    cin>>s;
    while(s!='@')
    {
        if(isupper(s))
        {
            cout<<(s=tolower(s))<<endl;
            cin>>s;
        }
        else if(islower(s))
        {
            cout<<(s=toupper(s))<<endl;
            cin>>s;
        }
    }
    return 0;
}


作者: yyg990441   发布时间: 2011-06-13

toupper和tolower返回int类型

作者: yyg990441   发布时间: 2011-06-13

引用 1 楼 bdmh 的回复:
cout<<(char)toupper(s)<<endl;

另外@换一个吧,会当做组合符号被处理


书上说大(小)写返回值是其小(大)写,原来需要强制转换那,谢谢

作者: gh2126002   发布时间: 2011-06-13

引用 3 楼 yyg990441 的回复:
toupper和tolower返回int类型

果然是 谢谢

作者: gh2126002   发布时间: 2011-06-13

引用 2 楼 yyg990441 的回复:
C/C++ code

#include <iostream>
#include <cctype>
int main()
{
using namespace std;
char s;
cout<<"输入一个字符"<<endl;
cin>>s;
while(s!='@')
{
if(isupper(s))
……


谢谢帮忙,可是这个编译不过去,就是s赋值那块,说是形参不匹配
error C2563: 在形参表中不匹配

作者: gh2126002   发布时间: 2011-06-13

引用 6 楼 gh2126002 的回复:

引用 2 楼 yyg990441 的回复:
C/C++ code

#include <iostream>
#include <cctype>
int main()
{
using namespace std;
char s;
cout<<"输入一个字符"<<endl;
cin>>s;
while(s!='@')
{
if(isupper(s))
……


谢谢……

vs2005编译,没问题

作者: luciferisnotsatan   发布时间: 2011-06-13

using namespace std; 放到main外去。

函数传入的什么参数?

作者: liulcsy   发布时间: 2011-06-13

摒弃cin、cout;
使用scanf、printf

作者: zhao4zhong1   发布时间: 2011-06-13

引用 9 楼 zhao4zhong1 的回复:
摒弃cin、cout;
使用scanf、printf


为什么呢 要用c语言的~~

作者: gh2126002   发布时间: 2011-06-13

引用 7 楼 luciferisnotsatan 的回复:
引用 6 楼 gh2126002 的回复:

引用 2 楼 yyg990441 的回复:
C/C++ code

#include <iostream>
#include <cctype>
int main()
{
using namespace std;
char s;
cout<<"输入一个字符"<<endl;
cin>>s;
while(s!='@')
{
if……


啊 2008有错,回家我再看

作者: gh2126002   发布时间: 2011-06-13

引用 8 楼 liulcsy 的回复:
using namespace std; 放到main外去。

函数传入的什么参数?


为什么啊 ,放外头不是全局吗,全局不是不好吗

作者: gh2126002   发布时间: 2011-06-13