Avatar billede phpnewbie Nybegynder
13. december 2001 - 12:02 Der er 8 kommentarer og
1 løsning

Smelte variabler sammen

Jeg har et problem med at få en variabel til at smelte sammen med en anden..

har fx:

v1 = 55
v2 = 87

og så skal den blive til:

det_her = 5587

men hvordan ?? den spasser max over det :(
Avatar billede disky Nybegynder
13. december 2001 - 12:05 #1
er det int ?

Så skriv

det_her = v1*100+v2:

hvis det er strings brug strcat()
Avatar billede mickni33 Nybegynder
13. december 2001 - 12:07 #2
#include <string.h>

string v1 = 55;
string v2 = 87;

string samlet=v1+v2;

cout<<samlet<<endl;

Avatar billede alvion Nybegynder
13. december 2001 - 12:32 #3
printf(\"%d%d\", v1, v2);
Avatar billede soepro Nybegynder
13. december 2001 - 13:08 #4
Du er i alt fald nødt til at lave en beslutning om hvor \"stor\" hver del kan/må være. disky\'s løsning forudsætter præcist 2 cifre, både mickni og alvion blot det antal cifre der er i brug.

Hvis det er det sidstnævnte du har brug for, kan du få den numeriske værdi igen vha.:

char buffer[11];
int det_her;
det_her = atoi(sprintf(buffer, \"%d%d\", v1, v2));

så indeholder det_her tallet 5587 og buffer teksten \"5587\" i dit eksempel. Med faste længder på hver del, skal du ændre masken på sprintf sådan her:

int const maxCiff = 3;
sprintf(buffer, \"%0*.*d%0*.*d\", maxCiff, maxCiff, v1, maxCiff, maxCiff, v2);

idet maxCiff konstanten så styrer hvor mange cifre hver tal lige præcis skal være. (Indsætter foranstillede nuller.) I dit eksempel vil det nye tal bliver \'055087\' med d.o. kode.
Avatar billede disky Nybegynder
13. december 2001 - 13:11 #5
soepro:

brug strcat() istedet for at skulle parse med sprintf(), strcat() er hurtigere
Avatar billede soepro Nybegynder
13. december 2001 - 13:11 #6
atoi funktionen understøtter i øvrigt hexadecimale værdier, hvis de første tegn i teksten er \"0x\", altså f.eks. \'0x5587\' = 21895 decimalt.
Avatar billede soepro Nybegynder
13. december 2001 - 13:15 #7
disky >> muligvis er strcat hurtigere (hvorfor ?) men så kan jeg ikke styre antallet af cifre. Iøvrigt er det min erfaring at anvendelse af en \"library\" funktion (f.eks. sprintf) altid er hurtigere, end hvis man selv skal kode noget tilsvarende. (Library-funktionerne er optimeret - og oftest kodet direkte i assembler mod dit OS/CPU.)
Avatar billede disky Nybegynder
13. december 2001 - 13:26 #8
det er strcar også, husk printf og afarter skal parse den styre streng du angiver, strcat() skal kun kopiere data.
Avatar billede soepro Nybegynder
13. december 2001 - 14:36 #9
disky >> hvorved jeg skal lave ekstra kode rundt om strcat, og så er vi jo enige.
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