Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Převod znaku na číslo

Aktivity
Avatar
Jan Grunt
Člen
Avatar
Jan Grunt:25.12.2016 22:11

Ahoj,

přátelé. Jak v PHP jednoduše docílit při konverzi znaku na číslo, to, že uživatel bude psát text a PHP vypisuje dle nadefinovaného postupu čísla. Takže např. pro písmeno "a" vypíše 1, "b"=>2 atd...Pro text tedy: "ahoj" vypíše 1-10-17-12.
Trochu tuším, šel bych na to určitě i s Javascriptem, ale v PHP?
Děkuji

 
Odpovědět
25.12.2016 22:11
Avatar
Jindřich Máca
Tvůrce
Avatar
Jindřich Máca:26.12.2016 14:58

Ahoj,

připravil jsem pro Tebe jednoduchou ukázku, která dělá v podstatě to, co jsi popsal - http://www.itnetwork.cz/dev-lighter/843. Má to ale několik problémů:

  • Pro převod znaku na číslo využívám PHP funkci ord() - http://php.net/…tion.ord.php, která se ale řídí klasickou ASCII tabulkou - http://www.asciitable.com/. To znamená, že standardně podporuje znaky pouze anglické abecedy a z toho plyne, že např. "h" nebude 10, nýbrž 8.
  • Dále jsi chtěl normalizaci na 1 tj. že písmeno "a" bude 1. Nikde jsi ale neuváděl, jak to bude např. s "A", protože to jsou z hlediska strojového přístupu dva rozdílné znaky. Každopádně já jsem udělal stejnou normalizaci pro malá i velká písmena, takže v rámci mé ukázky by na tom nezáleží a znak "a" i "A" se převedou oba na 1.
  • Poslední věc je, jak se proprat s jinými znaky např. ".,?!123...". Já jsem je prostě nechal v původní podobě bez jakékoliv konverze. Ještě by je třeba šlo logicky úplně vynechat, aby nedocházelo k záměně např. mezi převodem znaku "a" na 1 a samostatným znakem "1". To už ale nechám na Tobě. ;)

Pokud k tomu budeš mít ještě nějaké další dotazy, neváhej se zeptat. :)

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
26.12.2016 14:58
Avatar
Odpovídá na Jan Grunt
Neaktivní uživatel:26.12.2016 21:04

Ahoj, pokud Ti je všechno jasné, označ prosím správné řešení.

Nahoru Odpovědět
26.12.2016 21:04
Neaktivní uživatelský účet
Avatar
Oliver Tušla:26.12.2016 21:53

Neříkám, že je to efektivní a správné řešení, ale kdyby jsi chtěl to mít naprosto dle tvých představ, tak můžeš:

  1. Rozdělit string po jednom znaku.
  2. Napsat si třeba switch, kde si řekneš, co se má vrátit (default - vrátí se původní string).
  3. Spojíš to všechno dohromady a voilà.
 
Nahoru Odpovědět
26.12.2016 21:53
Avatar
Jan Grunt
Člen
Avatar
Jan Grunt:27.12.2016 11:18

super chlapy! třeba v pythonu jsem na to šel takhle:
while(True):
text = input()
if text == 'stop':
break
for x in text:
num = ord(x)
num -= 96 //a = 1, b = 2, ...
if (num == -64): //mezerník
print(' ')
print(num, end='-')

 
Nahoru Odpovědět
27.12.2016 11:18
Avatar
Jan Grunt
Člen
Avatar
Jan Grunt:27.12.2016 11:42

Jindřich Máca: ASCII pěkně vyřešená pomocí té funkce :)

Všichni: :) Má člověk možnost být zaměstnán s PHP když je takový ten začátečník (typoval bych se na něco jako A2.. ):D. Umím zatím málo. Zatím jen klasické.. přihlašovací (registrační) formuláře s databází. No, celkově takový jednoduchý eshop bych dal. Ale od sebe i PHP chci mnohem víc. Nevíte, zda-li je možnost někde najít pozici, kde se schopný učenlivý človíček dostane k práci, která mu zaměstná šedou kůru mozkovou a naučí se tak i mnohem kvalitněji a rychleji a přitom si už něco vydělá?? :) děkuji

 
Nahoru Odpovědět
27.12.2016 11:42
Avatar
David Hynek
Tvůrce
Avatar
Odpovídá na Jan Grunt
David Hynek:27.12.2016 12:38

Nezáleží kolik toho umíš, ale jak umíš prodat co umíš. :)

Nahoru Odpovědět
27.12.2016 12:38
Čím víc vím, tím víc věcí nevím.
Avatar
Jan Grunt
Člen
Avatar
Odpovídá na David Hynek
Jan Grunt:27.12.2016 13:12

To myslím nemusí být problém. Jde o to, že zatím jsem jen programoval v C někdy na gymplu. Pak jsem se ale rozhodl pro humanitní studia a muziku a konec programování. Teď když už mi je 32 :O, tak sice programuji laboratorní měřidla :D a něco v matlabu, ale žádné portfolio zatím nemám. Tož je těžké někam jít a říct, zatím jsem se nikdy s php neživil a ani nebyl nikde v žádný firmě, kde bych se podílel na nějakém projektu s php souvisejícím, ale chtěl bych u vás pracovat .. :)

 
Nahoru Odpovědět
27.12.2016 13:12
Avatar
David Hynek
Tvůrce
Avatar
Odpovídá na Jan Grunt
David Hynek:30.12.2016 21:42

Tak můžeš říct, že máš zdravý nadhled nad současným stylem programování a jsi otevřen všemu novému co přijde bez překonávání zažitých zlozvyků.

Ať se daří. :)

Nahoru Odpovědět
30.12.2016 21:42
Čím víc vím, tím víc věcí nevím.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.