Tjena! ---Längden på ett fält i C??
Har fastnat lite på ett problem.
Jag har ett fält som jag vill kunna få fram storleken på.
Fältet kommer att tilldelas olika strängar allt eftersom programmet körs men nedan har jag lagt in en "testtext". Vet bara inte hur jag ska få fram antalet chars....
<code>
char text[] = "Jag är en människa.\nÄr du också en människa?\n.";
ELEMENTS = //antal chars i fältet.
for(i=0; i<ELEMENTS ; i++)
osv...
</code>
Vill veta hur man gör i C för att lösa det. Tack på förhand.Sv: Längden på ett fält i C??
char text[] = "Jag är en människa.\nÄr du också en människa?\n.";
int elements=0;
while(text[elements]){
elements++;}Sv: Längden på ett fält i C??
char text[] = "Jag är en människa.\nÄr du också en människa?\n.";
ELEMENTS=strlen(text);
---
eller
---
char text[] = "Jag är en människa.\nÄr du också en människa?\n.";
ELEMENTS=sizeof(text)/sizeof(*text)
---
fungerar också.
Vill du använda det alternativ som någon skrev om här ovan bör du istället lägga det i en inline-funktion:
---
inline int Length(char *text)
{
char *end=text;
while(*end++)
;
return end-text;
}
...
char text[] = "Jag är en människa.\nÄr du också en människa?\n.";
ELEMENTS=Length(text);
---
Den senare är jag osäker på, men den skall fungera enligt de flesta böcker jag läst.
För övrigt anser jag att du bör byta till klassen "string" från C++ standardbibliotek istället. Kan bli både mindre resurskrävande och snabbare än standard C.
/Niklas Jansson