Avatar billede mirakulix Nybegynder
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}
Avatar billede zaym01 Nybegynder
27. april 2004 - 09:18 #1
Kender du antallet at cifre i Val?
Avatar billede mirakulix Nybegynder
27. april 2004 - 09:19 #2
nej det er ikke fastsat
Avatar billede mirakulix Nybegynder
27. april 2004 - 09:20 #3
Det er forresten C koden jeg er ude efter :o)
Avatar billede chries Nybegynder
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.
Avatar billede chries Nybegynder
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);
}
Avatar billede chries Nybegynder
27. april 2004 - 09:29 #6
sprintf ( buffer, "%d", argument , tal );
->
sprintf ( buffer, "%d", tal );
Avatar billede mirakulix Nybegynder
27. april 2004 - 09:29 #7
der er ik en funktion til at bestemme længden af en int vel?
Avatar billede chries Nybegynder
27. april 2004 - 09:29 #8
#include <stdlib.h>
#include <stdio.h>
Avatar billede chries Nybegynder
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
Avatar billede arne_v Ekspert
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;
Avatar billede arne_v Ekspert
27. april 2004 - 09:32 #11
dig skal selvfølgelig bruges inden delete ...    :-)
Avatar billede mcgoat Nybegynder
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
Avatar billede mcgoat Nybegynder
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;
}
Avatar billede mcgoat Nybegynder
27. april 2004 - 10:49 #14
ups....
char *arr;
kan du godt slette
Avatar billede mcgoat Nybegynder
27. april 2004 - 11:33 #15
noget du kan bruge?
Avatar billede mirakulix Nybegynder
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
Avatar billede mirakulix Nybegynder
27. april 2004 - 13:57 #17
>> mcgoat << er C++, hvad gør itoa();?? og nej det kører ikke :o(
Avatar billede mirakulix Nybegynder
27. april 2004 - 14:00 #18
>> mcgoat Jo det virker sq :o), men hvad går itoa();??
Avatar billede mirakulix Nybegynder
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
Avatar billede mcgoat Nybegynder
27. april 2004 - 14:06 #20
itoa laver int om til string
Avatar billede mcgoat Nybegynder
27. april 2004 - 14:08 #21
hehe, ved jeg ikke, har selv prøvet... så lavede det bare om til char* istedet
Avatar billede mcgoat Nybegynder
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]
Avatar billede mirakulix Nybegynder
27. april 2004 - 14:19 #23
ok takker for hjælpen :o)
Avatar billede mcgoat Nybegynder
27. april 2004 - 14:22 #24
var så lidt :)
Avatar billede arne_v Ekspert
27. april 2004 - 21:56 #25
Som demonstreret i mit forsag an man godt undgå strengen.
Avatar billede mcgoat Nybegynder
03. maj 2004 - 07:59 #26
giver du point?
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