c# teckenkod-uppgift
Jag har inte den blekaste aning om hur man ska göra. Någon som vet???
Vilken tabell syftar vi på? Jag antar att det handlar om ASCII tabellen eller har du en tabell i uppgiften som du inte tagit med?
Dracaena skrev:Vilken tabell syftar vi på? Jag antar att det handlar om ASCII tabellen eller har du en tabell i uppgiften som du inte tagit med?
Yes det är ASCII tabellen
Nu är inte detta de riktiga ASCII värderna men poängen är densamma.
1 = A
2 = B
3 = C
4 = D
5 = E
AABCA ---> CCDEC
Hänger du med? Du skiftar allting 2 steg.
Dracaena skrev:Nu är inte detta de riktiga ASCII värderna men poängen är densamma.
1 = A
2 = B
3 = C
4 = D
5 = E
AABCA ---> CCDEC
Hänger du med? Du skiftar allting 2 steg.
Jag förstår uppgiften men är osäker på hur man ska utföra den.
Nu har jag inte provat själv, men den låter som att det skulle kunna fungera:
Ta emot inputen och spara undan den i en variabel, sedan kan du konvertera varje char till dess ASCII värde och addera det med ett lämpligt värde. Nu kan du bara konvertera tillbaka och skriva ut strängen på nytt.
Eftersom svenska bokstäver är med så är det inte ASCII enbart. Det är förmodligen utf8 (Unicode).
Jag ändrar mig, det är nog utf16. Inkrementerar man varje byte med 2 i utf8 kan det bli väldigt konstigt.
Enklaste är väl att göra en lång sträng med alla tecken i bokstavsordning som du vill stödja t.ex
string minaTecken = "ABCDEFGHI"; // ha alla du vill stödja: A...Öa...ö
Sedan läser du in strängen från användaren och för varje tecken i den strängen letar du efter tecknet i "minaTecken", du kan använda IndexOf för detta.
var index = minaTecken.IndexOf( ditt tecken )
då får du tillbaka index av den, sedan lägger du till 2 till index och läs ut den nya bokstaven från minaTecken som du då kan direkt skriva ut med Write. Se bara till så att du inte går förbi slutet på strängen:
index = (index + 2) % minaTecken.Length;
På så vis slipper du krabba med ASCII/UTF etc. Kanske inte den mest effektiva metoden men den fungerar.
Glöm inte att hantera när ett tecken inte hittas, så att du kan skriva ut ett lämpligt felmeddelande.