7 svar
130 visningar
biggieballs 3
Postad: 24 okt 2022 19:18

c# teckenkod-uppgift

Jag har inte den blekaste aning om hur man ska göra. Någon som vet???

Fermatrix 7841 – Fd. Medlem
Postad: 24 okt 2022 19:25

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?

biggieballs 3
Postad: 24 okt 2022 19:27
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

Fermatrix 7841 – Fd. Medlem
Postad: 24 okt 2022 19:28

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.

biggieballs 3
Postad: 24 okt 2022 19:30
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. 

Fermatrix 7841 – Fd. Medlem
Postad: 24 okt 2022 19:32

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.

Laguna Online 30472
Postad: 24 okt 2022 22:07 Redigerad: 24 okt 2022 22:08

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.

 

anders_k 237
Postad: 25 okt 2022 07:42 Redigerad: 25 okt 2022 07:57

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.

Svara
Close