輸入壹個隨機的int數,加上123會把1放在壹個定義好的數組的前5位(如果是a32),以此類推。當沒有數字時,將以下所有內容初始化為0;當然,拼音對數字的原理正好與上述相反。
漢字的簡稱:
計算機系統中規定用於查找單個字符1字節,中文單個字符占2字節。
不要說什麽因為,直接把它寫成ASCII形式就行了。漢字有GB規則,原理和英語壹樣。妳可能要問為什麽漢字要用2個字節,主要是因為漢字太多了,而英文只有26個。漢字到數字正好相反。
壹般來說,它們放進去的數字都是二進制的,我們只有在讀取的時候經過處理才能理解。
先認識兩個簡單的漢字,然後我再考慮壹下:
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & ltctype.h & gt
int pytonum(char s[]);
void numtopy(無符號整數n);
int main(int argc,char *argv[])
{
無符號整數n;
char s[10];
Printf("輸入拼音:");
scanf("%s ",s);
n = pytonum(s);
printf(" % s = = & gt;%u\n ",s,n);
printf("%u == >,n);
numtopy(n);
返回0;
}
//拼音到數字
int pytonum(char s[])
{
char * p = s;
int ch
int n;
無符號整數r = 0;
while(*p){
ch = to lower(* p++);
n = ch-' a '+1;
r & lt& lt=5;
r+= n;
}
r & lt& lt=2;
return r;
}
//數字到拼音
void numtopy(無符號整數n)
{
無符號整數ch;
const無符號int mask = 0xF8000000
當(名詞)
{
ch = n & amp口罩;
如果(ch){
ch & gt& gt=27;
ch+=(' a '-1);
putchar(ch);
}
n & lt& lt= 5;
}
putchar(' \ n ');
}
我覺得如果妳看過STL,LZ可以自己解決妳的問題。
C++標準庫的Map或者hash_map就是為了實現妳說的這個問題。
boost庫中的Bimap也可以實現雙向轉換。
定義映射關聯容器需要壹個鍵和值,定義如下:MAP
像這樣的容器的使用非常靈活。這只是地圖的定義。建議妳在寫程序之前先看看STL,這樣會事半功倍。