主题:大小写转换我的程序可以简写吗?谢谢!也想问问C++中学习指针要注意什么??谢谢!
773950918
[专家分:0] 发布于 2010-05-15 17:00:00
#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个回复)
沙发
雪光风剑 [专家分:27190] 发布于 2010-05-15 17:27:00
首先,你的程序有个很大的问题,就是你的a实际上没分配任何空间就让他用了,而且是对一个空常量赋值,这里就不对,直接声明一个char[255]之类的东西你才能scanf而且你的程序应该是循环再外判断在内啊,你正好颠倒了
板凳
xiaoruo331 [专家分:100] 发布于 2010-05-18 09:35:00
深圳华信群英科技有限公司,目前主要从事软件外包开发、高级软件人才定向输送等业务,面对日益严峻的大学生就业难和IT企业招聘难,自2006以来,与知名通信软件公司正式签订定向输送人才的合作协议,针对想进入软件行业的人员提供企业实训,实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段,共计900学时。
企业订单委培,内训前签订就业安置协议,100%保证就业。实训结束之后,在华信群英科技及其战略合作伙伴从事通信软件研发工作。欢迎有意向者加QQ:649846168咨询。
3 楼
p544289998 [专家分:60] 发布于 2010-05-31 09:33:00
#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 楼
773950918 [专家分:0] 发布于 2010-05-31 22:54:00
请问一下 a[0]=32^a[0];是根据什么得出的,请你详细讲解好吗??详细?
5 楼
773950918 [专家分:0] 发布于 2010-05-31 23:05:00
我发现你那程序是无限循环的,可以有不要无限循环吗??
6 楼
773950918 [专家分:0] 发布于 2010-05-31 23:28:00
#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 楼
p544289998 [专家分:60] 发布于 2010-06-04 09:18:00
原理很简单啊
你用计算机算算就知道了
大写字母和小写字母的唯一区别就是第6位 大写字母 65 A 1000001
小写字母 97 a 1100001
其他的你可以自己验证一下 都是变成的技巧
这个好像是一个公司的入职考试题 忘了我在那里看到的
觉得技巧很好 就记下来了
要求不用判断语句转换大小写
8 楼
p544289998 [专家分:60] 发布于 2010-06-04 09:19:00
只是说一下原理罢了 想出来循环 以你的水平我不说你都知道的
呵呵
学无止境啊~~~MFC这么多类这么多函数 我看晕了 记不住了
9 楼
773950918 [专家分:0] 发布于 2010-06-04 14:39:00
呵呵!谢谢啦!加油!!
我来回复