1~9的拼音是yi,er,san,......jiu
在一个字符串中把1~9的拼音翻译成阿拉伯数字
//vs2005
#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;
void filter(string str)
{
//各字符串的下标即为其对应的阿拉伯数字
char *ch[]={"0","yi","er","san","si","wu","liu","qi","ba","jiu"};
int i,j,k,len;
string substr;
len=str.length();
//printf("%d\n",len);
for(i=0;i<len;i++)
{
//可以看出拼音最短为2个字符,最长为3个字符
for(j=i+1;j<len&&(j-i)<3;j++)
{
substr=str.substr(i,j-i+1);
//cout<<substr<<endl;
//取子串与各数字的拼音比较
for(k=1;k<10;k++)
if(!substr.compare(ch[k]))
{
printf("%d\n",k);//相等则打印出数字
break;
}
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
string str;
cout<<"enter a string:"<<endl;
char ch1=' ';
while(ch1!='\n')
{
cin>>str;
ch1=getchar();
}
filter(str);
return 0;
}