Computerhilfen.de Logo
Forum
Tipps
News

Länge eines Strings ermitteln

Hi,

ich habe ein Problem. Ich möchte die Länge eines Strings ermitteln, habe aber nur einen Pointer.

int anzeigen(){
    int i,n,lang;
    FILE *ptr;
    char buffer[50];
    char * pch;
   
       
    ptr=fopen(DATEI,"r");
   
    printf("\tVorname:\tNachname\tAlter\tGehalt\n");
    printf("\t--------------------------------------------------\n");
    while(fgets(buffer,100,ptr)!=NULL){
   
    pch = strtok (buffer,";");
    while (pch != NULL)
    {
    if(lang=(sizeof(pch)/4)<8){
    printf("/t");
    }   
    printf ("\t%s",pch);
    pch = strtok (NULL, ";");
    }
    }
return 0;
}


korrekterweise ist lang=1.

Wie kreige ich aber die Länge des Strings raus?
Meine Idee war, den String erst in eine Variable zu speichern tmp und von dieser die Länge zu ermitteln. Hoffe ja es gibt eine einfachere Lösung.

Gruß
Andre

Antworten zu Länge eines Strings ermitteln:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Einfach dereferenzieren geht vermutlich nicht?

lang=(sizeof(&pch)/4)

Die richtig tolle Lösung ist das mit dem sizeof eh nicht, du gehst jetzt davon aus, dass das was auch immer hinter dem Pointer steht, 4 Byte pro Einheit (hier: pro Zeichen) groß ist. Die einzig sichere Variante ist AFAIK sich den richtigen String zu holen und die Zeichen bis zum \0 zu zählen (da gibts strlen() oder sowas)... das sind dann so Momente, wo man richtige Strings richtig zu Schätzen weiß.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ach ja...strleng() gibts ja auch noch. ::)
Danke. Werde das mal damit probieren.
 


« dateien lesen/beschreibenmaus - funktion in visual c++ 6 »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!