回 帖 发 新 帖 刷新版面

主题:大小写转换我的程序可以简写吗?谢谢!也想问问C++中学习指针要注意什么??谢谢!

#include<iostream>
using namespace std;
int main()
{
    char a[]=" ";
     int i=0;
     int j=0;
    cout<<"请输入一个字母:"<<endl;
    cin>>a;
    if(a[i]>='a'&&a[i]<='z')
    {
    while(a[i]!=0)
    {
    if(a[i]>='a'&&a[i]<='z')
            a[i]=a[i]-32;
             i++;
    }
    }
    else
    {
    while(a[j]!=0)
    {
        if(a[i]>='A'&&a[i]<='Z')
            a[i]=a[i]+32;
        j++;
    }
    }
    cout<<"输出字母:"<<a<<endl;
   return 0;
}

回复列表 (共9个回复)

沙发

首先,你的程序有个很大的问题,就是你的a实际上没分配任何空间就让他用了,而且是对一个空常量赋值,这里就不对,直接声明一个char[255]之类的东西你才能scanf而且你的程序应该是循环再外判断在内啊,你正好颠倒了

板凳


深圳华信群英科技有限公司,目前主要从事软件外包开发、高级软件人才定向输送等业务,面对日益严峻的大学生就业难和IT企业招聘难,自2006以来,与知名通信软件公司正式签订定向输送人才的合作协议,针对想进入软件行业的人员提供企业实训,实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段,共计900学时。
企业订单委培,内训前签订就业安置协议,100%保证就业。实训结束之后,在华信群英科技及其战略合作伙伴从事通信软件研发工作。欢迎有意向者加QQ:649846168咨询。

3 楼

#include<iostream>
using namespace std;
int main()
{
    char a[1];
    while (1)
    {    cin>>a[0];
    a[0]=32^a[0];
    cout<<a[0]<<endl;
    }   
    return 0;
}
程序可以简写

大小写字母在二进制的区别仅仅只有第六位
我没有进行输入判断哦

4 楼


请问一下 a[0]=32^a[0];是根据什么得出的,请你详细讲解好吗??详细?

5 楼


我发现你那程序是无限循环的,可以有不要无限循环吗??

6 楼


#include<iostream>
using namespace std;
int main()
{
    char a[1];
    while (1)
    {   cout<<"请输入字母如果要结束请输入'0'哦:";
        cin>>a[0];
        if(a[0]=='0')break;
   a[0]=32^a[0];
    cout<<"输出转换后的字母是:";      
    cout<<a[0]<<"\t"<<endl;
    }   
    return 0;
}

7 楼

原理很简单啊 
你用计算机算算就知道了 

大写字母和小写字母的唯一区别就是第6位  大写字母 65 A   1000001
                                       小写字母 97 a   1100001
其他的你可以自己验证一下  都是变成的技巧 
这个好像是一个公司的入职考试题 忘了我在那里看到的 
觉得技巧很好 就记下来了 

要求不用判断语句转换大小写

8 楼

只是说一下原理罢了 想出来循环 以你的水平我不说你都知道的

呵呵

学无止境啊~~~MFC这么多类这么多函数 我看晕了  记不住了

9 楼

呵呵!谢谢啦!加油!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册