Avatar billede trexy Nybegynder
24. januar 2004 - 15:33 Der er 4 kommentarer og
1 løsning

Tæl hvor mange pladser der er brugt i arrayet

jeg har fået svar på følgende spørgsmål http://www.eksperten.dk/spm/455639
men jeg vil gerne tælle hvor mange pladser der er brugt i et int-array.
Avatar billede arne_v Ekspert
24. januar 2004 - 15:44 #1
Generelt er det ikke muligt hverken at teste for hvor mange elementer der er brugt
af et array.

char arrays der bruges som strenge har en konvention at en nul byte betyder
slut.

Der er ingen tilsvarende konvention for integer arrays.

Du kan lave din egen og sige at -1 betuder slut.
Avatar billede trexy Nybegynder
24. januar 2004 - 15:58 #2
Kan du give nogle eksempler på hvordan konvertion ser ud?
Avatar billede arne_v Ekspert
24. januar 2004 - 16:04 #3
Der er slet ike noget avanceret i det.

Eksempel:

#include <stdio.h>

int intlen(int *a)
{
  int n = 0;
  while(*a != -1)
  {
      n++;
      a++;
  }
  return n;
}

int main()
{
  int a1[] = { 1,2,3,-1 };
  int a2[] = { 1,2,3,4,5,-1 };
  printf("%d\n",intlen(a1));
  printf("%d\n",intlen(a2));
  return 0;
}
Avatar billede tgv Nybegynder
24. januar 2004 - 23:00 #4
Hvis du vil lave meget redigering med f.eks. et int array kan du bruge std::vector i stedet (det kommer dog an på hvor erfaren du er :) f.eks:

#include vector
std::vector<int> MyVector;
//Gemmer tallet 10 og 15 i MyVector
MyVector.push_back(10);
MyVector.push_back(15);
cout << MyVector.size();

Hvis du vil søge i en vector kan du bruge en iterator eller en int f.eks:
for (int i = 0; i < MyVector.size(); i++)
{
    cout << MyVector[i];
}
Avatar billede arne_v Ekspert
16. februar 2004 - 22:32 #5
OK ?
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