/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
længte af char array
Fra : Martin


Dato : 07-02-04 13:38

Hejsa

Hvis jeg har et char array som fx. char stop[6];
som jeg i en lykke vil lægge elementer ind i, hvordan finder jeg så ud
af hvormange elementer der er i arrrayet?

(Måske søger jeg forkert men jeg kan ikke finde nogen funktion til at
finde længden.)

Martin

 
 
Mogens Hansen (07-02-2004)
Kommentar
Fra : Mogens Hansen


Dato : 07-02-04 16:45


"Martin" <me@privacy.invalid> wrote:

> Hvis jeg har et char array som fx. char stop[6];
> som jeg i en lykke vil lægge elementer ind i, hvordan finder jeg så ud
> af hvormange elementer der er i arrrayet?

Det skal du selv holde styr på.

Hvis arrayet udgør en tekststreng er det almindelig konvention at
nul-terminere strengen - altså '\0' til sidst.
I så fald kan du bruge funktionen strlen til at finde længden.
Hvis du anvender C++ er det ofte nemmere at anvende klassen std::string i
stedet

Hvis arrayet skal opfattes som indeholdende diskrete tegn, må du holde styr
på det på en anden måde. Det kan f.eks. være ved at have en integer ved
siden af, hvor man skriver hvormange der er, eller ved at _vide_ at alle
elementer i arrayet bliver brugt, eller ved at lade ubrugte elementer have
en særlig værdi (typisk '\0').
Hvis du anvender C++ er det ofte nemmere at anvende klassen
std::vector<char>, som holder styr på det for dig.

Venlig hilsen

Mogens Hansen



Byrial Jensen (08-02-2004)
Kommentar
Fra : Byrial Jensen


Dato : 08-02-04 10:50

Martin wrote:
> Hejsa
>
> Hvis jeg har et char array som fx. char stop[6];
> som jeg i en lykke vil lægge elementer ind i, hvordan finder jeg så ud
> af hvormange elementer der er i arrrayet?

Som Mogens Hansen siger skal man ofte selv holde styr på det, for
eksempel ved at have en særskilt variabel med antal elementer. Det
skyldes teknisk set at et array konverteres til en pointer når den
bruges som argument ved et funktionskald.

Men hvis arrayet virkelig er et array, findes der en standardmetode som
vises i dette program:

#include <stdio.h>
#define LEN(array) (sizeof array/sizeof *array)
int main ()
{
char ca[6];
printf ("ca har %zu elementer.\n", LEN(ca));
return 0;
}

Fidusen er at man tager den samlede størrelse af arrayet og deler det
med størrelsen af enkelt array-element. Resultatet er antal elementer.
Beregningen sker på oversættelsestidpunktet hvis det er muligt, og
ellers når programmet udføres.


Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408183
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste