27. april 2004 - 09:16
Der er
24 kommentarer og 2 løsninger
Opdeling af int
Kan man opdele en int??? F.eks. hvis jeg nu har en, int Val=456 kan jeg så opdele den til int Val[]={4,5,6}
Annonceindlæg fra NetNordic
27. april 2004 - 09:18
#1
Kender du antallet at cifre i Val?
27. april 2004 - 09:19
#2
nej det er ikke fastsat
27. april 2004 - 09:20
#3
Det er forresten C koden jeg er ude efter :o)
27. april 2004 - 09:21
#4
hvis den ikke går negativ, kan du: int tal = 100; int mindsteciffer = tal%10; int næstmindsteciffer = (tal/10)%10; int efternæstmindsteciffer = (tal/100)%10; ... eller må du nok igang med klippe i strenge.
27. april 2004 - 09:28
#5
Nu håber jeg at alle funktioner findes i C =) int tal = 1000; char buffer[64]; sprintf ( buffer, "%d", argument , tal ); char temp[2] = 0; temp[1] = '\0'; int length = strlen(buffer); for( int i=0; i<length; i++ ) { temp[0] = buffer[i]; int ciffer = atoi(temp); }
27. april 2004 - 09:29
#6
sprintf ( buffer, "%d", argument , tal ); -> sprintf ( buffer, "%d", tal );
27. april 2004 - 09:29
#7
der er ik en funktion til at bestemme længden af en int vel?
27. april 2004 - 09:29
#8
#include <stdlib.h> #include <stdio.h>
27. april 2004 - 09:31
#9
Ved ikke om der findes en funktion til at bestemme lændgen af en int, men jeg har fundet længden ved at: char buffer[64] sprintf ( buffer, "%d", argument , tal ); int length = strlen(buffer); men den fungerer kun ved ints der er positive
27. april 2004 - 09:32
#10
int val = 456; int ndig = log10(val)+1; int *dig = new int[ndig]; int tmp = val; for(int i = ndig-1; i >= 0; i++) { dig[i] = tmp % 10; tmp = tmp / 10; } delete[] dig;
27. april 2004 - 09:32
#11
dig skal selvfølgelig bruges inden delete ... :-)
27. april 2004 - 09:36
#12
hvad med noget i denne stil: ?? int val = 456; int val2; string tal; tal = val.toString(); for(int i = 0; i < strlen(tal); i++) { val2[] = tal.subString(i,1); } noget i den stil? kan man det
27. april 2004 - 10:48
#13
#include <string.h> #include <conio.h> #include <iostream.h> #include <stdlib.h> #include <stdio.h> int main(int argc, char* argv[]) { int i; int val = 456; int length = sizeof(val); char *test; char *arr; itoa(val,test,10); for(i=0;i<length;i++) { cout << test[i] << endl; } getch(); return 0; }
27. april 2004 - 10:49
#14
ups.... char *arr; kan du godt slette
27. april 2004 - 11:33
#15
noget du kan bruge?
27. april 2004 - 13:42
#16
jeg får heletiden følgende fejlmeddelse, uanset hvilken kode jeg prøver: LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 Debug/test.exe : fatal error LNK1120: 1 unresolved externals
27. april 2004 - 13:57
#17
>> mcgoat << er C++, hvad gør itoa();?? og nej det kører ikke :o(
27. april 2004 - 14:00
#18
>> mcgoat Jo det virker sq :o), men hvad går itoa();??
27. april 2004 - 14:04
#19
int main(int argc, char* argv[]) { int i; int val = 12345; int length = sizeof(val); char test[length]; itoa(val,test,10); for(i=0;i<=length;i++) { printf("%c\n",test[i]); } return 0; } hvorfor kan jeg ikke sætte Arrayet test til længden length
27. april 2004 - 14:06
#20
itoa laver int om til string
27. april 2004 - 14:08
#21
hehe, ved jeg ikke, har selv prøvet... så lavede det bare om til char* istedet
27. april 2004 - 14:10
#22
så istedet for tallet 456 for du nu en streng "456", og der kan du så hente hvad der står på pladserne test[i]
27. april 2004 - 14:19
#23
ok takker for hjælpen :o)
27. april 2004 - 14:22
#24
var så lidt :)
27. april 2004 - 21:56
#25
Som demonstreret i mit forsag an man godt undgå strengen.
Kurser inden for grundlæggende programmering