Avatar billede ttn.bonk Nybegynder
06. maj 2004 - 14:20 Der er 7 kommentarer og
1 løsning

Konvertering af streng til tal (integer)

Hej,

findes der en rutine (som fx. atoi) i C/C++ som er ligeglad med tal formatet i strengen, så den fx. kan konvertere rigtig i tilfældende som nedenfor:

int x = atoi("17");
int x = atoi("0x11");

Mvh Torben.
Avatar billede arne_v Ekspert
06. maj 2004 - 14:26 #1
Ikke mig bekendt. Du vil nok være nødt til selv at parse strengen: check om
den starter med 0x hvis nej kald strtol med strengen og 10 hvis ja kald strtol
med resten af strengen og 16.
Avatar billede jpk Nybegynder
06. maj 2004 - 14:27 #2
strtol ta'r basen som argument, altså 10 for decimal, 2 for binær osv.
Avatar billede ttn.bonk Nybegynder
06. maj 2004 - 15:46 #3
Okay,
desværre må jeg nok selv lave det så. Ikke fordi det er noget problem,
men en så almindeligt forekommende konvertering af bruger input kunne
jo godt have fandtes :-(.

Læg lige et svar arne v så du kan få points.

Mvh Torben.
Avatar billede arne_v Ekspert
06. maj 2004 - 15:47 #4
svar
Avatar billede bertelbrander Praktikant
06. maj 2004 - 19:14 #5
Hvis man bruger 0 som base til strtol() finder den selv ud af om det er hex/decimal/octal, se f.ex:

http://www.hmug.org/man/3/strtol.html

Dvs man kan konvertere:

"0x12" > 18
"12" > 12
"012" > 10
Avatar billede arne_v Ekspert
06. maj 2004 - 19:58 #6
Smart.

Den kendte jeg ikke.
Avatar billede ttn.bonk Nybegynder
06. maj 2004 - 21:10 #7
Som lovet får du pointene arne, men hvis bertelbrander også lægger et svar får han også point for det fine svar med strtol.
Avatar billede bertelbrander Praktikant
06. maj 2004 - 21:18 #8
Jeg forsøger at undgå point (og Arne har fået dem).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester