您的位置:首页 > 其它

输入一串只有由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也行。

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐