第一题:拼音转数字
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述 : 拼音 yi er san si wu liu qi ba jiu
阿拉伯数字 1 2 3 4 5 6 7 8 9
输入字符只包含小写字母,所有字符都可以正好匹配
运行时间限制:无限制
内存限制: 无限制
输入: 一行字符串,长度小于1000
输出: 一行字符(数字)串
样例输入: yiersansi
样例输出: 1234

程序代码:

#include<iostream>
#include<cstdio>
#define MAX 1000;
using namespace std;
void print(char *str,int length);
int main()
{
    char str[1000];
    int i=0;
    char c;
    int length=0;
    while((str[i]=getchar())!='\n')
    {
        i++;
    }
    print(str,i);//i即为字符数组长度 
    return 0;
}
void print(char *str,int length)
{
    int i=0;
    for(i=0;i<length-1;)
    {
        if(str[i]=='y')
        {putchar('1');i+=2;}
        else if(str[i]=='e')
        {putchar('2');i+=2;}
        else if(str[i]=='s')
        {
            if(str[i+1]=='a')
            {putchar('3');i+=3;}
            else
            {putchar('4');i+=2;}
        }
        else if(str[i]=='w')
        {putchar('5');i+=2;}
        else if(str[i]=='l')
        {putchar('6');i+=3;}
        else if(str[i]=='q')
        {putchar('7');i+=2;}
        else if(str[i]=='b')
        {putchar('8');i+=2;}
        else if(str[i]=='j')
        {putchar('9');i+=3;}
        else 
        i++;

    }
}

运行结果:

参考资料:2015届华为校园招聘机试题