Archief - [PROG]-[C++] Deel van string naar integer

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

jeroen65

Legacy Member
Ik vraag mij af hoe ik van een char het 2de deel kan converteren naar een integer. Ik heb een code ala A1 en wil dus die 1 opslaan in een integer. Maar als ik bij atoi char[1] ingeef krijg ik een error. Iemand een idee hoe ik hier rond geraak? Of moet ik een andere weg zoeken?

schop aars

Legacy Member
char a = ...;
String blabla = ""+a;

en dan pakte alleen da 2e deeltje van dieje blabla en zette da in nen andere string.
en dan zette diejen laatste string om in een integer.

ik ken geen c++ daarmee dannek alleen beschrijf hoe ge het kunt doen

Psychokillah

Legacy Member
PHP:
#include <string>
#include <cstdlib>
using std::string;

int main() {
   string text = "123";
   int intValue;
   intValue = atoi( text.c_str() );

   return 0;
}

Dit zou perfect moeten werken

killgore

Legacy Member
Jeroen65, moet het persé de integer 1 zijn (als je code A1 is)?

Zoniet:

int ival = 0;
ival = (int)text[1];

zou in principe moeten werken.
edit: als het zeker een cijfer is (da tweede deel) en je wilit dat cijfer terug: die ival-48 doen ;).

als je echter atoi wilt gebruiken, deze neemt ptr aan, geen waarde:

atoi(&text[1]); dus :) (text= "pointer", text[index] = waarde)

@psycho: ik denk niet dat dat zijn bedoeling is ;)

edit: nog korte opmerking: ik zou nooit als var-name char gebruiken :p

jeroen65

Legacy Member
@Psychokillah: Dat werkt perfect maar enkel als het een gehele string is met tekens

@Killgore: Die -48 had ik ook al gevonden maar vond dat zo niet mooi staan :D Maar uw andere oplossing werkt ook perfect (y) Ik zat al te prutsen met de pointer op te slaan maar zet ik er toch weer geen *-tje voor zekers :/ en die korte opmerking. Ik had dit hier gewoon getypt om aan te geven wat type het was ;)

killgore

Legacy Member
jeroen65 zei:
@Psychokillah: Dat werkt perfect maar enkel als het een gehele string is met tekens

@Killgore: Die -48 had ik ook al gevonden maar vond dat zo niet mooi staan :D Maar uw andere oplossing werkt ook perfect (y) Ik zat al te prutsen met de pointer op te slaan maar zet ik er toch weer geen *-tje voor zekers :/ en die korte opmerking. Ik had dit hier gewoon getypt om aan te geven wat type het was ;)
tis nie of het mooi staat, tgaat om snelheid :p.

Psychokillah

Legacy Member
jeroen65 zei:
@Psychokillah: Dat werkt perfect maar enkel als het een gehele string is met tekens

@Killgore: Die -48 had ik ook al gevonden maar vond dat zo niet mooi staan :D Maar uw andere oplossing werkt ook perfect (y) Ik zat al te prutsen met de pointer op te slaan maar zet ik er toch weer geen *-tje voor zekers :/ en die korte opmerking. Ik had dit hier gewoon getypt om aan te geven wat type het was ;)

eum wat is het probleem met:

string iets = charArr[1] + xharArr[5] + ... ; ??

En na iets voer je dan de rest van bovenvermelde code uit? Imo, veel properder aangezien je toch de stl zijn werk laat doen, al dat geklooi met references of pointers is overbodig in dit geval.

@snelheid: :rofl: wa string operatiekes gaan het verschil nu ni maken he tenzij ge me strings van een paar miljoen tekens bezig zijt.

killgore

Legacy Member
Psychokillah zei:
@snelheid: :rofl: wa string operatiekes gaan het verschil nu ni maken he tenzij ge me strings van een paar miljoen tekens bezig zijt.
da weet ek nu ook wel :), heb zelfs men twijfels of dat van mij echt sneller is ;).

Ma ik vind die reden van da staat schoner als het kan nog belachelijker ;).

Zet daar een comment achter waarom je die -48 doet en dat ding is duidelijk en het werkt :).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan