Powered By Blogger

關於我自己

我的相片
網站經營斷斷續續,現在以分享程式練習為主。 因為工作需要,不時會有練習程式的需要。 所以將自己練習的過程分享給大家。 如果有幫助到各位,那就太好了! 如果針對本人或網站內容有任何問題, 歡迎與我聯絡。

2012年5月19日 星期六

【C / C++ 語言】電話或手機按鍵上英文字對應數字

居裡貓今天考了C語言的程式考試,在這邊分享一下我的解答方式!
從 txt 檔案中讀入一串由大寫 A~Z 組成的文字,將這些文字由下列規則轉換為數字。
2    A B C
3    D E F
4    G H I
5    J K L
6    M N O
7    P Q
8    T U V
9    W X Z
如果文字為 R ,判斷前一個文字為 U 時,對印數字為 2,若不是 U 數字為 7。
如果文字為 S ,判斷前一個文字為 E 時,對印數字為 1,若不是 U 數字為 2。
如果文字為 Y ,判斷前一個文字為 R 時,對印數字為 1,若不是 U 數字為 0。

以下是居裡貓的程式碼:

#include<stdio.h>
#include<string.h>
#include<fstream.h>
#include<iostream.h>
void main()
{
    char str[100]; //存放字元用
    ifstream fip("a.txt");
    fip.getline(str,100,'\n');
    cout << str << endl << "Ans=";
    int i,len1;
    len1=strlen(str);
    for(i=0;i<len1;i++)    // for 迴圈執行字串判斷
    {
        //判斷字元,輸出對應數字
        if(str[i]=='A' || str[i]=='B' || str[i]=='C')
        {
            cout << "2";
        }
        else if(str[i]=='D' || str[i]=='E' || str[i]=='F')
        {
            cout << "3";
        }
        else if(str[i]=='G' || str[i]=='H' || str[i]=='I')
        {
            cout << "4";
        }
        else if(str[i]=='J' || str[i]=='K' || str[i]=='L')
        {
            cout << "5";
        }
        else if(str[i]=='M' || str[i]=='N' || str[i]=='O')
        {
            cout << "6";
        }
        else if(str[i]=='P' || str[i]=='Q')
        {
            cout << "7";
        }
        else if(str[i]=='T' || str[i]=='U' || str[i]=='V')
        {
            cout << "8";
        }
        else if(str[i]=='W' || str[i]=='X' || str[i]=='Z')
        {
            cout << "9";
        }
        else if(str[i]=='R')
        {
            if(str[i-1]=='U')
                cout << "2";
            else
                cout << "7";
        }
        else if(str[i]=='S')
        {
            if(str[i-1]=='E')
                cout << "1";
            else
                cout << "2";
        }
        else if(str[i]=='Y')
        {
            if(str[i-1]=='R')
                cout << "1";
            else
                cout << "0";
        }
    }
    fip.close();
}


以下為輸出結果(一):
txt 檔案內容為:
HURRYUP

輸出結果(二):
txt 檔案內容為:
THERESEAR

以上簡單的分享,希望大家還看得下去!

2 則留言: