帮忙写个小程序

angelcm51 2008-03-10 10:39:34
写一个C++程序 输入一个少于20个字母的单词 将它转换为另一种码 转换方法为 1 代表 B, F, P, V
2 代表 C, G, J, K, Q, S, X, Z
3 代表 D,T
4 代表 L
5 代表 M,N
6 代表 R
A, E, I, O, U, H, W, Y 什莫也不被代表 如果两个字母或更多在一起都等于一个数字 那末只用一个数字表示
例如 输入 KHAWN 输出 25
输入 PFISTER 输出 1236
输入 BOBBY 输出 11
...全文
119 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
HelloDan 2008-03-11
  • 打赏
  • 举报
回复
用map做吧。这样更容易
yealcool 2008-03-11
  • 打赏
  • 举报
回复
void transformer(char *c)
{
int i = 0;
int j = 0;
int k = 0;
int iNum = 0;
int r[20];
menset(r,0,sizeof(r));
for ( i =0; i< 20;i++ )
{
switch (c[i])
{
case 'B':
case 'F':
case 'P':
case 'V':
j = 1;
break;
case 'C':
...
case 'Z':
j = 2;
break;
...
}
if ( j != k )
{
k = j;
r[iNum++] = k;
}
}


}
HelloDan 2008-03-11
  • 打赏
  • 举报
回复

#include<iostream>
#include<map>
#include<string>
using std::cout; using std::endl;
using std::map; using std::cin;
using std::string; using std::make_pair;


int main()
{
map<char,char> charint;
string str;
char star='a';
charint.insert(make_pair('B','1'));
charint.insert(make_pair('F','1'));
charint.insert(make_pair('P','1'));
charint.insert(make_pair('V','1'));
charint.insert(make_pair('C','2'));
charint.insert(make_pair('G','2'));
charint.insert(make_pair('J','2'));
charint.insert(make_pair('K','2'));
charint.insert(make_pair('Q','2'));
charint.insert(make_pair('S','2'));
charint.insert(make_pair('X','2'));
charint.insert(make_pair('Z','2'));
charint.insert(make_pair('D','3'));
charint.insert(make_pair('T','3'));
charint.insert(make_pair('L','4'));
charint.insert(make_pair('M','5'));
charint.insert(make_pair('N','5'));
charint.insert(make_pair('R','6'));
charint.insert(make_pair('A',' '));
charint.insert(make_pair('E',' '));
charint.insert(make_pair('I',' '));
charint.insert(make_pair('O',' '));
charint.insert(make_pair('U',' '));
charint.insert(make_pair('H',' '));
charint.insert(make_pair('W',' '));
charint.insert(make_pair('Y',' '));
cout<<"input string:";
cin>>str;
for(string::iterator it=str.begin();it!=str.end();++it)
{

if(star!=*it&&charint[*it]!=' ')
{
star=*it;
cout<<charint[*it];
}
else
star=*it;

}
cout<<endl;
return 0;
}

moss830704 2008-03-11
  • 打赏
  • 举报
回复

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

int main(){
string word;
string number;
cout<<"Please write the word:";
cin>>word;
int j=0;
char flag='0';
cout<<"The trans-code:";
for(int i=0;i<word.size();i++){
switch(word[i]){
case 'B':
case 'F':
case 'P':
case 'V':
flag='1';
break;
case 'C':
case 'G':
case 'J':
case 'K':
case 'Q':
case 'S':
case 'X':
case 'Z':
flag='2';
break;
case 'D':
case 'T':
flag='3';
break;
case 'L':
flag='4';
break;
case 'M':
case 'N':
flag='5';
break;
case 'R':
flag='6';
break;
}
if((flag!='0')&&(flag!=number[j-1])){
number[j]=flag;
cout<<number[j];
j++;
}
flag='0';
}
system("PAUSE");
}
canybox 2008-03-10
  • 打赏
  • 举报
回复
不难,但是要求比较BT
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-10 10:39
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下