2回目の編集変更コードで追加された詳細
単語OR文が入力されたときに出力したい文字列の配列に、アルファベットに相当する数値コードがあります。これがそのための私のC++コードです。モールス符号のように、ユーザー入力を取得し、すべてのアルファベットのすべての数字に対して同等の時間ビープ音を出力します。基本的に、組み込みアプリケーションにはこれが必要ですが、まず典型的な C で動作させたいので、組み込みに移動します。
現在、たとえば、アルファベット「i」には数値コード 24 があり、実行時に「i」が入力として与えられると、最初にビープ音が 2 回鳴り、その間に INNER_LOOP のスリープ時間、つまり 450 が鳴ります。次に、OUTER_LOOP、つまり 700 の間スリープし、次にINNER_LOOP スリープ時間でビープ音が 4 回鳴ります。したがって、ビープ音が 2 回鳴り、待ってから 4 回ビープ音が鳴ることを認識することができます。つまり、「i」のコードである「24」を送信します。「ii」を 2 回入力すると、同じことが行われます。つまり、INNER_LOOP スリープ時間の後に 2 番目の「i」のビープ音が開始されるため、コードは 2424 のように表示されます。長い間待って 24 をもう一度 raed するよりも、ユーザーは 2 つのアルファベット、つまり「ii」またはその他の組み合わせのコードを認識できます。
各アルファベットコードを個別に読み取ることができるように、同じ単語の任意の 2 つのアルファベット間で発生する THIRD_SLEEP 時間を導入したいのです。現在は同じアルファベットの数字コード間のみです。
これまでの私のコードは次のとおりです。
#include <iostream>
#include <string>
#include <sstream>
#include <windows.h>
using namespace std;
string texttopattern(char c)
{
//Hello world again
//125-15-123-123-135 1346-135-1235-123-145 1-1245-1-24-1345
    string alphabet = "abcdefghijklmnopqrstuvwqyz"; //osv
    string code[] = {"1","12","14","145", "15", "124", "1245",
                      "125", "24", "245", "13", "123", "134",
                      "1345", "135", "1234", "12345", "1235", "234", "2345",
                      "136", "1236", "1346", "13456", "1356", "12346"};
    int index = alphabet.find(c);
    if(index!=-1)
        return code[index];
    else
        return " ";
}
int main()
{
    const int OUTER_SLEEP = 700,
              INNER_SLEEP = 450;
    int n;
    string ord;
    getline(cin, ord);
    string code="";
    for(int i=0; i<ord.length(); i++)
    {
        code += texttopattern(ord[i]);
    }
    for(int i = 0; i<code.length(); i++)
    {
        n = code[i] - '0';
        for(int j=0; j<n; j++)
        {
            cout<<'\a';
            Sleep(INNER_SLEEP);
        }
        Sleep(OUTER_SLEEP);
    }
    return 0;
}