07. februar 2004 - 17:00
Der er
14 kommentarer og 1 løsning
Hvordan konverterer man en integer til en char i c?
Denne kode virker ikke: char *test = ("bla bla %s", (char*) test2); den kompiler fint men kører ikke.
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
07. februar 2004 - 18:10
#1
int test2 = 123; char test[100]; sprintf(test,"bla bla %d",test2); var ihvertfald en løsning.
07. februar 2004 - 18:11
#2
Jeg har iøvrigt skrevet en lille artikel om konvertering mellem forskellige typer. Måske værd at læse.
07. februar 2004 - 18:59
#3
det virker ikke. hvor er den artikkel henne?
07. februar 2004 - 19:19
#4
Det skal virke. regulær standard C som har virket de sidste 20 år
07. februar 2004 - 19:20
#5
http://www.eksperten.dk/artikler/143 (koster 5 point at læse - der står ikke mere om int -> char array
end jeg allerede har skrevet, men der er mange andre konverteringer)
07. februar 2004 - 19:21
#6
Hvis du uddybede "det virker ikke" kunne jeg måske sige hvor vi har snakket forbi hinanden.
07. februar 2004 - 23:34
#7
#include <conio.h> char *test1 = "bla bla %s"; char *test2 = "test"; char *test = ((char *) test1, (char *) test2); char chr = test[1]; printf("%c", chr); getch();
07. februar 2004 - 23:54
#8
#include <conio.h> char *test2 = "test"; char *test = ((char *) test2); char chr = test[1]; printf("%c", chr); getch();
08. februar 2004 - 09:16
#9
Den sidste koder svarer til: char *test2 = "test"; char chr = test2[1]; og fisker det andet bogstav 'e' ud af "test", men det var ihvertfald ike sådan jeg læste spørgsmåket...
08. februar 2004 - 13:09
#10
Hensigten var blot at konstatere hvad char pointeren test tildeles, når: char *test = ((char *) test1, (char *) test2) Det er åbenbart test2.
08. februar 2004 - 13:22
#11
Ja. Men kun p.g.a. de ekstra parenteser (komma operatoren har den laveste precedens af alle). #include <stdio.h> int main() { int v; v = 1,2; printf("%d\n",v); v = (1,2); printf("%d\n",v); return 0; } udskriver: 1 2
08. februar 2004 - 13:23
#12
Komma operatoren er efter min bedste mening et misfoster og et eksempel på C når det er værst.
08. februar 2004 - 14:19
#13
For v = 1,2 har 1 åbenbart højeste precedens og for v = (1,2) er det 2. Ganske lærerigt...
08. februar 2004 - 14:30
#14
Jeg ville udtrykke det som at = har højere precedens end , og at v=1,2 derfor svarer til (v=1),2 men ja.
08. februar 2004 - 23:20
#15
Du har ret. Ingen yderligere kommentarer.
Kurser inden for grundlæggende programmering