Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Zamiana całego zestawu znaków wg przyporządkowania

#1
Zamiana całego zestawu znaków wg przyporządkowania
Chcę sklecić programik C++ żeby mi całościowo zamieniał wpisany tekst według przyporządkowanych np. par znaków. Mam taki kod, ale szaleje i daje złe wyniki. Proszę o podpowiedź.

Kod:
#include <iostream>
#include <windows.h>
#include <cstdlib>

using namespace std;
unsigned char znaki[256];
char a;
int main()
{
for(int i=1; i<=10000; i++)
{
cin.get( a );
znaki[static_cast<unsigned char>(a)] = a;

znaki[static_cast<unsigned char>('12')] ='ab';
znaki[static_cast<unsigned char>('34')]='cd';

cout<<znaki[static_cast<unsigned char>(a)];
}
return 0;
}
 System operacyjny: windows_seven Przeglądarka: chrome
#2
RE: Zamiana całego zestawu znaków wg przyporządkowania
Czy mógłbyś jaśniej określić, co chcesz osiągnąć? Chcesz zamienić dany znak na inny, a to odwzorowanie znajduje się w tablicy znaki? Pary znaków musiałbyś inaczej zamienić.

 System operacyjny: linux_ubuntu Przeglądarka: firefox
#3
RE: Zamiana całego zestawu znaków wg przyporządkowania
Rzeczywiście może nie wyraziłem się do końca jasno. Podporządkowuję (nie wiem czy to poprawny termin w tym wypadku) każdej parze znaków inną parę, np. 'ab'='rg';'cd'='zn';'ef'='tt';'gh'='pl' Wpisuję na przykład tekst "abcdefgh", a program zamienia mi ten tekst na "rgznttpl".
 System operacyjny: windows_seven Przeglądarka: chrome
#4
RE: Zamiana całego zestawu znaków wg przyporządkowania
Stwórz tablicę dwuwymiarową, i w instrukcji Switch/Case podmieniaj zestaw z pierwszej tablicy zestawem z drugiej. Najprostsze rozwiązanie, jakie mi przychodzi do głowy.
Ajgor

Moja kapela rockowa w akcji: TAMP - Hallelujah
 System operacyjny: windows_ten Przeglądarka: chrome
#5
RE: Zamiana całego zestawu znaków wg przyporządkowania
A czy byłbyś łaskaw zaszczycić mnie chociaż dwiema linijkami kodu?
 System operacyjny: windows_seven Przeglądarka: chrome
#6
RE: Zamiana całego zestawu znaków wg przyporządkowania
Kod:
string zamiana(const string &wejscie, const map<string, string> &odwzorowanie)
{
    string wyjscie = wejscie;
    for (map<string, string>::const_iterator it = odwzorowanie.begin(); it != odwzorowanie.end(); ++it)
    {
        long idx = 0;
        while ((idx = wejscie.find(it->first, idx)) != string::npos)
        {
            wyjscie.replace(idx, it->first.size(), it->second);
            idx += it->first.size();
        }
    }
    return wyjscie;
}
A w funkcji głównej
Kod:
map<string, string> odwz;
odwz["ab"] = "rg";
odwz["cd"] = "zn";
odwz["ef"] = "tr";
odwz["gh"] = "pl";
cout << zamiana("abcdefgh", odwz) << endl;
Program zadziała jedynie wtedy, gdy podmieniane pary mają tę samą długość i nie nachodzą na siebie.

 System operacyjny: linux_ubuntu Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki (Zamiana całego zestawu znaków wg przyporządkowania)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Kodowanie znaków w .bat kkkkk2105 4 8016 25.08.2017, 14:38
Ostatni post: kkkkk2105
  Android zamiana Bitmap na Tablice typu byte aht 2 5729 08.02.2016, 11:20
Ostatni post: aht
  Zamiana połówki tablic C# karol8023 3 5955 19.06.2015, 09:13
Ostatni post: karol8023

Skocz do:


Wybrane wątki (Zamiana całego zestawu znaków wg przyporządkowania)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  czy w java można napisać dowolny program ? anders33 7 7119 04.04.2017 22:03
Ostatni post: koneton
  Adresy, szesnastkowe dodawanie soul1648 5 5755 03.04.2017 23:21
Ostatni post: Ajgor
  [C++]pobieranie danych z comboBox Pleyzon223 1 5629 02.04.2017 09:35
Ostatni post: Szachista
  Wyszukiwanie w tablicy soul1648 3 5765 01.04.2017 14:26
Ostatni post: Ajgor
  [Visual Studio 2017] Problem z utworzeniem projektu draxen 2 2351 31.03.2017 23:20
Ostatni post: Ajgor
  Tutoriale: Tworzenie raportów z wykorzystaniem SQL. Cixi 3 5870 29.03.2017 08:23
Ostatni post: koneton
  [CMD - Tryb wsadowy] Skrypt tworzący drzewo katalogów na podstawie podanego pliku Ayumi 0 5494 29.03.2017 01:41
Ostatni post: Ayumi
  Help z wytłumaczenie | tablice wskażnikowe soul1648 21 15085 27.03.2017 11:28
Ostatni post: Szachista
  Wskażniki do tablic dwuelementowych soul1648 1 5153 25.03.2017 16:13
Ostatni post: Szachista
  Tablice dwuwymiarowe a wskażniki soul1648 4 5480 22.03.2017 21:58
Ostatni post: soul1648
  [C++] Działanie na tablicy znakowej saba13579 8 5385 21.03.2017 22:30
Ostatni post: Szachista
  Wyszukuje wszystkie dzielniki danej liczby n które są liczbami pierwszymi soul1648 2 4949 21.03.2017 20:55
Ostatni post: soul1648
  automatyczne tworzenie pliku tekstowego alinja 3 5739 18.03.2017 20:51
Ostatni post: Szachista
  [C++] Scalanie dwóch posortowanych tablic soul1648 5 6326 16.03.2017 20:09
Ostatni post: Szachista
  Adresy pamięci w grach ankieteradrian 8 6499 09.03.2017 16:01
Ostatni post: ankieteradrian