Wyświetlanie tablicy

No to tak najpierw opiszę może co robi mój program. Postanowiłem napisać program który zamieni tekst na kod binarny. Stworzyłem 2 tablice w jednej są małe litery alfabetu a w drugiej odpowiedniki kodu binarnego. I na przykład litera a w tabeli jest pierwsza i ma swój numer jak to wszystko w tablicy jest to 0 tak samo kod binarny który odpowiada za a ma też 0 bo znajduje się na pierwszym miejscu w tabeli wiadome. I problem pojawia się przy wyświetlaniu kodu binarnego gdy wygląda on np tak - 00000 lub zaczyna się od zera to program wyświetla jakieś dziwne cyfry a gdy np zaczyna się od 1 to wyświetla całość dokładnie co mam zrobić żeby ten kod binarny zaczynający się od zera lub który posiada same zera wyświetlał się w całości a nie pokazywało się coś niestworzonego ?

A kod wygląda tak:

char Alfabet[26] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

			int KodB[26] = {00000, 00001, 00010, 00011, 00100, 00101, 00110, 00111, 01000, 01001, 01010, 01011, 01100, 01101, 01110, 01111, 10000, 10001, 10010, 10011, 10100, 10101, 10110, 10111, 11000, 11001};

			string tekst;

			cout << "Wpisz tekst ktory chcesz zamienic na kod binarny" << endl;

			cin >> tekst;

			for(unsigned i=0; i
			{

				for(int j=0; j<26; j++)

				{

					if(tekst[i]==Alfabet[j])

					{

						cout << " " << KodB[j] << endl;

					}

				}

			}

Rozpoczęcie liczby od 0 informuje kompilator, że jest ona zapisana w systemie ósemkowym, nie dziesiętnym.

Ogólnie rzecz biorąc, kod jest przekombinowany. Tablic stosować nie trzeba w ogóle(można “w locie” wyświetlać kod znaku w postaci binarnej), ale jeśli chcesz użyć tablic, to zamiast trzymania reprezentacji binarnej jako int, trzymaj jako ciągi znaków. Tzn.:

const char* binary[] = {"00000", "00001", ..., "11001"};[/code]

Dodatkowo tablica z literami jest niepotrzebna, wystarczy, że odejmiemy od naszej litery ‘a’ i dostaniemy indeks w tablicy binary.

Wyświetlanie:

[code=php]
for(unsigned i=0; itekst.length(); i++)

Tę tablicę z kodami też utwórz jako tekstową, podobnie jak tablicę alfabet.

Ja cały czas uczę się programowania dopiero wchodzę powolutku w tajniki programowania obiektowego a przy okazji robię sobie takie własne projekty dla satysfakcji. I właśnie dlatego taki a nie inny kod więc jeśli możesz to wytłumacz mi to lepiej

string asBinaryString(int n)

Dzięki za odpowiedzi a co do tego 2 kodu to jak dla mnie jeszcze trochę magiczne :slight_smile: zostawię sobie na kiedy indziej :smiley: