Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Pascal a C = pole znakov

Zacinam robit v cecku a potreboval by som prerobit pascalovu deklaraciu do cecka.

Pascal
Pole = array ['A'..'Z'] of char;
cize na 'A' mieste bude znak napr. +, na 'B' mieste bude znak napr. /

Cecko neviem to urobit takto v cecku
zeby?

char [co mam dat sem?]={'+','/',.........................};

Předmět Autor Datum
char jmeno_pole[delka_pole] = {'znak1','znak2', ...};
Niko Bellic 01.11.2012 15:55
Niko Bellic
dik toto si na google viem najst aj ja, ale pytal som sa uplne nieco ine. nechcem, aby na 1. mieste…
Martiness 01.11.2012 16:00
Martiness
Pak teda pole['A'] = znak1; pole['B'] = znak2; Místo 'A' můžeš dosadit ordinální hodnotu, což je 6…
Niko Bellic 01.11.2012 16:09
Niko Bellic
hm.. to nie je dost vyhodne :(( kua, mne stale pride, ze pascal je lepsi ok, diky za cas
Martiness 01.11.2012 16:13
Martiness
char pole[] = { '+', '/' , ... }; Pri prístupe k poľu musíš upraviť index (pole[index_z_pascalu - '…
los 01.11.2012 21:19
los
Uděláš si pole, které bude od ASCII 0 do 255, takže pole = array[0..255] of Char; Na místa, kam chce… poslední
Jan Fiala 01.11.2012 21:37
Jan Fiala

Uděláš si pole, které bude od ASCII 0 do 255, takže
pole = array[0..255] of Char;
Na místa, kam chceš jiné znaky si napíšeš jiné znaky, např. na pozici znaku 'A' zapíšeš do pole '+'
Budeš přistupovat na index, který by mělo písmeno 'A' a z pole si přečteš ten jiný znak:

jiny_znak := pole[Ord('A')];

Pokud to chceš skutečně od A-Z, pak můžeš, ale budeš to používat:

var
  znak: char;
begin
  znak := 'A'
  jiny_znak := pole[Ord(znak)-Ord('A')];
end;

V podstatě na to nepotřebuješ ani pole, stačí obyčejný řetězec, na který je možné přistupovat podle indexu:

var
  s, klic, vysledek: string;
  i: Integer;
begin
  klic := '+/§í8,;´=%87654323#$%^&**();¤\][/><...';  // tohle je místo znaků klic := 'ABCDEF...'
  s := 'TOHLE CHCI ZASIFROVAT';
  vysledek := '';
  for i := 1 to Length(s) do
    vysledek := Vysledek + klic(ord(s[i])-ord('A'));
  ShowMessage(vysledek);
end;

Zpět do poradny Odpovědět na původní otázku Nahoru