如何用C++编写一段“输入A输出1”的程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用C++编写一段“输入A输出1”的程序相关的知识,希望对你有一定的参考价值。

有个密码表:A对应 1,B对应 2......Z对应 26,运行时能:输入A按回车输出“ 1”,输入B按回车输出“ 2”,输入AZ按回车输出“ 1 26”,输入ABZ按回车输出“ 1 2 26”......谢谢

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void main()

string oringcode;//被解密的源码
cout<<"〓 密码翻译器 〓"<<endl;
cout<<"〓 退出请按0 开始密码翻译请按1 〓"<<endl;
int intput; //定义选择退出或是开始笨密码翻译
cout<<"你的选择是:";
cin>>intput;
switch(intput)

case 0: //为0就退出
break;
case 1: //为1就开始

bool falseorright=true;//定义循环
while(falseorright)
bool AZ=true; //判断字符串是否实在A-Z的范围内
cout<<"请输入源码(A--Z,退出请按0):";
cin>>oringcode;
if(oringcode[0]=='0')//输入0就退出

falseorright=false;

else //否则就开始解密

int size=oringcode.size();

for(int i=0;i<size;i++)

if(oringcode[i]>='A'&&oringcode[i]<='Z')


else

cout<<"请检查你的输入"<<oringcode[i]<<"是否是在A--Z的范围内?"<<endl;
AZ=false; //不在A-Z的范围就不解密输出



/*********************解密输出*******************/
while(AZ)

cout<<"解密后为:";
for(int j=0;j<size;j++)

oringcode[j]-=64;
printf("%d ",oringcode[j]);

cout<<endl;
AZ=false;

/*********************解密输出*******************/




break;
default: //若为其他就退出
cout<<"输入错误!"<<endl;
break;




结果验证:
输入:A
输出为:1
输入:B
输出为:2
输入:AB
输出为:1 2
输入:ABZ
输出为:1 2 26
输入:a
输出为:请检查你的输入a是否是在A--Z的范围内?
输入:ab
输出为:请检查你的输入a是否是在A--Z的范围内?
请检查你的输入b是否是在A--Z的范围内?
输入:abZ
输出为:请检查你的输入a是否是在A--Z的范围内?
请检查你的输入b是否是在A--Z的范围内?
参考技术A 在ASCII表中:65对应的是A(可参见http://www.weste.net/tools/ASCII.asp)
66对应B,类推。
而且由于int和char是可以相互转换。所以转换的函数可以这样写。

void convert(char *ch)

int i=0;
for(;ch!='\0';ch++)
i=*ch-64;
cout<<i;
return 0;


至于其他的输入函数,主函数,搂住这个应该比较简单
参考技术B #include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main()

string input;
cin>>input;
istringstream is(input);
char a;
while(is>>a)
cout<<(int)(a)-64<<" ";
cout<<endl;
system("pause");//按任意键继续,限VC++
return 0;

////支持字母间空格的版本

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main()

string input;
getline(cin,input);
istringstream is(input);
char a;
while(is>>a)
cout<<(int)(a)-64<<" ";
cout<<endl;
system("pause");
return 0;
参考技术C #include <iostream>
using namespace std;
int main()

char a;
cin>>a;
while(a!='\n')

cout<<a-64<<" ";
cin>>a;

return 0;

代码测试环境visual studio 2008;我是菜鸟,如果各位有好的算法,望不吝赐教,希望高人拍砖,谢谢
参考技术D int a;
cout>>a;

如何用 C++ 编写这个 php 代码

【中文标题】如何用 C++ 编写这个 php 代码【英文标题】:How to write this php code in c++ 【发布时间】:2011-01-08 21:58:46 【问题描述】:
$x = pack("N", $num1).pack("N", $num2).$data;

我正在尝试这样做

 union unionchal 
  struct ast
   unsigned long a;
   unsigned long b;
   char c[8];
   chal;
  unsigned char response[16];
 ;

ast 是输入,响应是输出

它的意思是输出yp¶ ‚¬þÖHpö€ì_±,但给出¶pyßêÈ)ÖHpöì_

我认为这与它是大端字节序有关

【问题讨论】:

【参考方案1】:

在将整数放入结构之前,尝试在整数上使用htonl。它将它们转换为大端顺序。如果您需要 64 位 long,请参阅 the discussion about it on SE。

【讨论】:

【参考方案2】:

我认为这与 它是大端字节序

我也这么认为。例如,您可以使用 htonl() 来更改 little-endian 机器上的字节顺序,或者编写您自己的字节交换函数(但是您必须自己测试主机的字节顺序是什么)。

【讨论】:

【参考方案3】:

尝试使用Boost Variant 库。

【讨论】:

以上是关于如何用C++编写一段“输入A输出1”的程序的主要内容,如果未能解决你的问题,请参考以下文章

如何用 C++ 编写程序,使其在执行后会自行删除?

如何用Java编写一段代码引发内存泄露

如何用visual studio 2010 写c++程序

如何用C++编写交互程序,界面上允许用户自定义变量公式等等function

如何用Java编写一段代码引发内存泄露

用C或C++编写:输入一段英文句子,输出其中最长的单词