输入一串只有由1-9对应数字的拼音输出对应的数字如输入为yiersan输出为:123
2014-08-27 10:47
239 查看
//下面程序是:输入一串只有由1-9对应数字的拼音输出对应的数字如输入为yiersan输出为:123
/*
此程序没有考虑输入异常的情况,对outresult函数的输入参数和返回参数
需要好好理解一下。
*/
#include <iostream>
#include <string>
using namespace std;
void *outresult(char *pinyin,char *out);
int main()
{
char input[50]="\0";
char output[30]="\0";//一定要初始化。不然得不到正确结果。
int i=0,j=0;
//*output="\0";
cin>>input;
outresult(input,output);//这个是没有返回值的。
cout<<output<<endl;
return 0;
}
void *outresult(char *pinyin,char *out)//最后需要return返回一个void*或者char*类型的值。
{
int len;
int j=0;
void *addr=out;//保证返回类型安全。
len=strlen(pinyin);
for(int i=0;i<len;i++)
switch(*(pinyin+i))
{
case 'y':
{
out[j]='1';
i++;
j++;
break;
}
case 'e':
{
out[j]='2';
i++;
j++;
break;
}
case 'w':
{
out[j]='5';
i++;
j++;
break;
}
case 'l':
{
out[j]='6';
i=i+2;
j++;
break;
}
case 'q':
{
out[j]='7';
i++;
j++;
break;
}
case 'b':
{
out[j]='8';
i++;
j++;
break;
}
case 'j':
{
out[j]='9';
i=i+2;
j++;
break;
}
case 's':
{
if(*(pinyin+i+1)=='a')
{
out[j]='3';
i=i+2;
j++;
break;
}
else
{
out[j]='4';
i=i+1;
j++;
}
}
default://这个不要忘了,虽然对结果影响不大,但是要养成良好的编程习惯。
break;
}
//out[j]='\0';//这句可以不需要,有初始化的值代替。
return out;//用return addr也行。
}
/*
此程序没有考虑输入异常的情况,对outresult函数的输入参数和返回参数
需要好好理解一下。
*/
#include <iostream>
#include <string>
using namespace std;
void *outresult(char *pinyin,char *out);
int main()
{
char input[50]="\0";
char output[30]="\0";//一定要初始化。不然得不到正确结果。
int i=0,j=0;
//*output="\0";
cin>>input;
outresult(input,output);//这个是没有返回值的。
cout<<output<<endl;
return 0;
}
void *outresult(char *pinyin,char *out)//最后需要return返回一个void*或者char*类型的值。
{
int len;
int j=0;
void *addr=out;//保证返回类型安全。
len=strlen(pinyin);
for(int i=0;i<len;i++)
switch(*(pinyin+i))
{
case 'y':
{
out[j]='1';
i++;
j++;
break;
}
case 'e':
{
out[j]='2';
i++;
j++;
break;
}
case 'w':
{
out[j]='5';
i++;
j++;
break;
}
case 'l':
{
out[j]='6';
i=i+2;
j++;
break;
}
case 'q':
{
out[j]='7';
i++;
j++;
break;
}
case 'b':
{
out[j]='8';
i++;
j++;
break;
}
case 'j':
{
out[j]='9';
i=i+2;
j++;
break;
}
case 's':
{
if(*(pinyin+i+1)=='a')
{
out[j]='3';
i=i+2;
j++;
break;
}
else
{
out[j]='4';
i=i+1;
j++;
}
}
default://这个不要忘了,虽然对结果影响不大,但是要养成良好的编程习惯。
break;
}
//out[j]='\0';//这句可以不需要,有初始化的值代替。
return out;//用return addr也行。
}
相关文章推荐
- 输入是一个只包含拼音的字符串,请输出对应的数字序列。
- 汇编语言 编写程序,如果输入的是大写字母,则输出对应的小写字母;如果输入的是小写字母,则输出对应的大写字母;如果输入的是数字,原样输出;按回车结束
- 80x86汇编语言:输入数字,输出对应月份的英文
- 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3
- vc 文字转换到机内码,输入汉字和数字, 输出一串16进制码(数字-〉ASII码,汉字—〉国标码)
- 模仿九宫格拼音输入法,根据输入的数字键,形成对应的汉字拼音
- 输入一组数字要求倒序输出,例如输入为123输出是321
- [置顶] Java面试题--输入一个数字输出对应的汉字
- 输入字符串,内有数字和非字符数组,例如A123x456将其中连续的数字作为一个整数,依次存放到一个数组中,如123放到a[0],456放到a[1],并输出a这些数
- c语言从键盘上输入一串字符串,输入两个数字a和b,截取字符串第a个到第b个字母,并输出截取后的字符串
- 输入一个无符号十进制数字串,以四位十六进制的形式输出该串对应的值。
- C#超基础:输入一串数字,转化为对应的汉字
- 输入一串字符,只包含“0-10”和“,”,找出其中最小的数字和最大的数字(可能不止一个),输出最后剩余数字个数
- 输入两个非负整数,然后每个数字颠倒顺序,如123颠倒之后就是321,反向求和输出。
- //1.编写代码模拟三次密码输入的场景。//2.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 输入一串数字以不同数量的空格分割数字,输出最小的数
- swing application 实现:输入一串数字,查找指定数字,并输出位置,若有出现多次,所有位置都要输出。
- 输入系数求一元二次方程根;输入数字对应打开windows的记事本、画图、计算器;输出当前一个月每天是星期几
- 编写程序显示由数字组成的平行四边形图案。从键盘输入一个整数(£40),则输出对应的图案。例如输入4,则输出为:
- 输入阿拉伯数字(整数),输出对应的中文(美团网2014年9月16日笔试题目之一)