Chinaunix

标题: 求各位帮忙找错 [打印本页]

作者: 增强功能    时间: 2009-03-15 17:27
标题: 求各位帮忙找错
#include <iostream.h>
void main(){
char a;
cout<<"Pleast enter a charactor :";
cin>>a;
if ((0x40<a<0x5B)||(0x60<a<0x7B)){
  if(0x40<a<0x5B)
  a=a+0x20;
  else
   a=a-0x20;
  cout<<a<<"\n";
}

else
  cout<<"error\n";
}


环境vc6.
我本来想写一个大小写转换的,但是结果根本不对。求各位帮忙指点一下

还有一个问题
        cout<<a<<"\n";
为什么写成
           cout<<a"\n";
就报错呢?

[ 本帖最后由 增强功能 于 2009-3-15 17:36 编辑 ]
作者: langue    时间: 2009-03-15 17:31
if (isupper(a))
    a = (char) tolower(a);
else if (islower(a))
    a = (char) toupper(a);


1、除非有充分的理由,否则不要尝试对平台相关的特性做出任何假设;
2、你说结果不对,是哪里不对?



[ 本帖最后由 langue 于 2009-3-15 17:33 编辑 ]
作者: getsmartboy    时间: 2009-03-15 17:32
0x40<a<0x5B
应该写成 0x40 <a && 0x5B > a
其他的类似
作者: 增强功能    时间: 2009-03-15 17:34
我按三楼的改了一下,果然可以了。可是为什么呢?

一下是修改以后的代码:
#include <iostream.h>
void main(){
        char a;
        cout<<"Pleast enter a charactor :";
        cin>>a;
        if (((0x40<a)&&(a<0x5B))||((0x60<a)&&(a<0x7B))){
                if((0x40<a)&&(a<0x5B))
                a=a+0x20;
                else
                        a=a-0x20;
                cout<<a<<"\n";
        }
       
        else
                cout<<"error\n";
}
作者: 增强功能    时间: 2009-03-15 17:38
标题: 回复 #4 增强功能 的帖子
谢谢啊,果然好用。但是为什么呢?
作者: langue    时间: 2009-03-15 17:40
标题: 回复 #5 增强功能 的帖子
C 语言不支持连用小于或者大于或者小于等于或者大于等于号,必须用逻辑运算符 && 加以连接。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2