描述
小洪想请你编写一个译码程序,把一条英文句子译成数字代码。译码规则是以数字1代替字母a,数字2代替字母b,…,26代替字母z,如遇空格则打印一个“#”,英文句子以“.”结束。
输入
一条以字符“.”结束的由小写字母、空格组成的英文句子。
输出
一行,译码以后的字符串。
我的错误程序如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
char a='1',z='26';
for(char i=a;i<=z;i++){
cin>>i;
if(i==' '){
cout<<"#";
}
if(i=='.'){
break;
}
cout<<i;
}
return 0;
}
字符型变量,a~z对应的是ASCII码表里面的97~122
#include<bits/stdc++.h>
using namespace std;
int main(){
char a='a',z='z';
char i='a';
while((i>=a&&i<=z)||i=='.'||i==' '){
i=getchar();
if(i==' ')
{
cout<<"#";
}
else if(i=='.')
{
break;
}
else if(i!='\n')
{
int num=i-'a'+1;
cout<<num;
}
}
return 0;
}
字符赋值有问题,数字赋值要用ASCII码赋值,可百度ASCII查看。记不住ASCII码可以使用char a=‘a’这种方法。
有多个字符输入可以使用getchar();进行对字符读取。然后减去‘a’的值+1.例:输入a,a-‘a’=0,a+1=1,输出1。
while判断是否是小写字母