letters vervangen door cijfers

Status
Niet open voor verdere reacties.

stykurgh

Gebruiker
Lid geworden
6 jul 2009
Berichten
715
hallo,

ik wil iets hebben zodat je een cmd scherm krijgt, daar een woord in kan vullen in een string en dat dan de string wordt gecontroleerd op letters. dus dat hij gaat kijken of er een a is en een b en dat dan vervangt door een letter, gewoon a =1 b =2 etc. dat moet ook op volgorde dus als je hallo invoerd dan moet hij dus eerst de H vervangen door 8 dan de a door 1 etc. en dat later wegschrijven in een file. heeft iemand een idee hoe dit op een simpele compacte manier kan?

mvg

michel
 
Code:
	string input = "abcdefghijklmnopqrstuvwxyz";
	ofstream file("filename.txt");

	for(int i = 0; i < input.length(); i++)
	{
		char c= input.at(i);
		file << int(c - 96) << " ";
	}

	file.close();

werkt alleen met kleine letters
 
bedankt! :D

ik heb nog een vraag :P

eigenlijk een paar kleine xD

waarom doe je c -96?

en kan het ook dat het werkt met hoofdletters en vreemde tekens?

en hoe kan je uit die filename.txt allen de eerste 4 cijfers halen en die dan eruit verwijderen en dan de volgende 4 etc?

bedankt voor de hulp :D
 
waarom doe je c -96?

www.ascii.nl -> @ = 64; A = 65

(de code die ik postte levert dus niet de juiste waarde op (denkfoutje gemaakt), want A wordt daar 0. De 'A' kun je daar dus ook vervangen voor '@')

en kan het ook dat het werkt met hoofdletters en vreemde tekens?

Ja, maar voor vreemde tekens moet je een controle inbouwen. ('!' = 33 -> 33 - 96 levert een andere waarde op dan je waarschijnlijk wilt hebben)

en hoe kan je uit die filename.txt allen de eerste 4 cijfers halen en die dan eruit verwijderen en dan de volgende 4 etc?

Er zijn makkelijker manieren om alle data te verwijderen :p
 
Laatst bewerkt:
dat laatste heb ik nu xD ik snap alleen niet hoe ik die dingen kan combineren xD voor kleine en hoofdletters. en vreemde tekens hoeft niet :P

is het trouwens ook een manier om het om te keren?
 
Laatst bewerkt:
dat laatste heb ik nu xD ik snap alleen niet hoe ik die dingen kan combineren xD voor kleine en hoofdletters. en vreemde tekens hoeft niet :P

Als je alleen de letters uit het alfabet wilt gebruiken dan kun je de tolower/toupper functie gebruiken om er zeker van te zijn dat je een kleine letter of een hoofdletter hebt.

[cpp]
printf("%i\n%i\n", tolower('a')-'`', toupper('a')-'@');
[/cpp]

(welke van de twee je gebruikt maakt niks uit)

is het trouwens ook een manier om het om te keren?

Ja, maar dan zal je wel extra informatie moeten opslaan. Op de huidige manier is 'a' en 'A' immers beide gelijk aan 1 en weet je dus nooit wat de oorspronkelijke waarde is geweest.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan