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 fra NetApp
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