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;
- }
原文地址:点击打开链接