Anzeige:
Ergebnis 1 bis 4 von 4

Thema: [C] einzelne Zeichen in Pointer schreiben

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.06.2004
    Ort
    Potsdam
    Beiträge
    27

    Question [C] einzelne Zeichen in Pointer schreiben

    Hallo,

    ich hab da mal wieder ein Problem, ich möchte gerne in einen Pointer einzelne Zeichen aus einem anderen Pointer kopieren. Ich weis allerdings nicht wieviel Zeichen es sind, die kopiert werden sollen. Derzeit hab ich das so gelöst, das ich ein Char-Array mit den Zeichen fülle, dieses dann terminiere und nun kann ich ja mittels strlen und malloc() die entsprechende Speichergröße bereitstellen. Das char-Array ist allerdings auf 1000 Zeichen begrenzt und somit nicht universel, da bei 1001 Zeichen ja ein Seg fault auftritt.

    Ich hatte nun die Idee einen Pointer auf das erste Zeichen zu setzen was für mich von interesse ist und einen auf das letzte was für mich von interesse ist. Dann sollte ich doch die Länge der Zeichen dazwischen ermitteln können in dem ich beide Pointer von einander subtrahiere ?

    Es wäre super wenn mir jemand helfen könnte?!
    Vielleicht auch etwas Beispielcode oder PseudoCode!

    Ein großes Danke Schön im Voraus schon mal!

    MfG tanis

  2. #2
    Registrierter Benutzer
    Registriert seit
    27.04.2001
    Beiträge
    62
    Zitat Zitat von tanis
    Ich hatte nun die Idee einen Pointer auf das erste Zeichen zu setzen was für mich von interesse ist und einen auf das letzte was für mich von interesse ist. Dann sollte ich doch die Länge der Zeichen dazwischen ermitteln können in dem ich beide Pointer von einander subtrahiere ?
    Wo liegt jetzt dein Problem? Und wieso willst du zwei Pointer verwenden? Was spricht gegen strlen?

    Mal etwas Code...
    Code:
    char* meinString = "Hallo Welt";
    int laenge = strlen(meinString);
    
    /* meinString jetzt in neuerString kopieren */
    char* neuerString = (char*)malloc(laenge);
    strncpy(neuerString, meinString, laenge);
    
    /* Nach verwendung von neuerString sollte er irgendwann auch wieder geloescht werden */
    free(neuerString);
    Geändert von chrizel (17-09-2004 um 12:02 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.06.2004
    Ort
    Potsdam
    Beiträge
    27
    Erstmal Danke für die Antwort!

    Mein Problem ist, das die Zeichenkette beliebig lang sein kann und ich nur einzelne Teilstrings daraus kopieren möchte. Ich parse diese Zeichenkette Zeichen für Zeichen durch. Ich weis also, wo die Zeichenkette beginnt und wo sie endet. Wie bekomm ich nun den Teil dazwischen in meine Variable?
    Code:
    char *daten="<html><head><title>$variable$</title></head><body></body></html>";
    for(;daten != '\0'; daten++) {
       // mit dieser Schleife lass ich jetzt daten Zeichen für Zeichen durchlaufen
    }
    Alles was jetzt zum Beispiel zw. $ und $ liegt möchte ich in eine Variable kopiert haben.
    Wie mach ich das?
    Sorry vielleicht habe ich mich wahrscheinlich falsch ausgedrückt!

    MfG tanis
    Geändert von tanis (17-09-2004 um 16:24 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    Code:
    #include <stdlib.h>
    #include <string.h>
    #include <stddef.h>
    #include <stdio.h>
    
    int main ()
    {
      char *daten =
        "<html><head><title>$variable$</title></head><body></body></html>";
      char *beg, *end;
      char *p;
    
      ptrdiff_t diff;
    
      beg = strchr (daten, '$') + 1;
      end = strchr (beg, '$');
    
      diff = end - beg;
    
      p = malloc (diff + 1);
    
      strncpy (p, beg, diff);
    
      p[diff] = 0;
    
      printf ("%s\n", p);
    
      free (p);
    
      return 0;
    }

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •