[c] bestimmte Zeichenfolgen aus String auslesen

Dieses Thema im Forum "C/C++" wurde erstellt von Zico, 29.08.2006.

  1. #1 Zico, 29.08.2006
    Zuletzt bearbeitet: 29.08.2006
    Zico

    Zico Lebende Foren Legende

    Dabei seit:
    16.04.2004
    Beiträge:
    1.559
    Zustimmungen:
    0
    Hi Leute

    Sorry wenn es dazu schonmal ein Thema gab, aber die SUFU war bei mir nun relativ erfolglos, weil ich nicht genau weiss, was ich suchen soll.

    Mein kleines Hobbyprogramm wird nun relativ anspruchsvoll (für meine Kenntnisse) und nun stoße ich an meine Grenzenbei folgender Sache:

    Ich hae einen String, in welchem, ein Seitenverhältnis definiert wird.
    Beispiel: aspect = 16zu7.5;
    Nun würde ich gerne die 16 sowie 7.5 in getrennten Variablen speichern.

    Wie ließe sich das für mich am besten lösen?
    Vielleicht hilft es noch klar zu stellen, dass die länge der jeweiligen Zahlen so variabel wie möglich sein sollen. Also mit oder ohne Dezimalstelle, einstellig, zweistellig etc.
    Zudem könnte es auch vorkommen, dass der Sting in Form von ZEICHENKETTE,ZAHL1,ZEICHENKETTE,ZAHL2 auftritt, quasi
    aspect16zu7.5

    Wenn mir nu jemand den Namen der Funktion nennen kann, die ich brauche, ist das schon genug für mich. Ok ein Beispiel (weil ich dabei immer am besten lerne) wäre auch sehr nett - aber definitv kein Muss.

    Vielen Dank
    zico
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 theton, 29.08.2006
    Zuletzt bearbeitet: 29.08.2006
    theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Einmal rekursiv durch den String laufen und die einzelnen Zeichen untersuchen, ob sie ein int oder ein '.' sind, sollte doch innerhalb eines for(i=0;i<=strlen(meinstring);i++) mit isdigit() problemlos moeglich sein. Einfach den Schleifenzaehler als Index fuer das aktuelle Zeichen im String nutzen.
    Ist dann das vorherige Zeichen ein int oder ein '.', fasst du einfach die zusammengehoerigen Zeichen (Zahlen (+ '.' + Zahlen)) in einer Variable zusammen und je nachdem ob ein '.' drin ist oder nicht, wandelst du dann einfach mit atoi() oder strtof() die Werte um, falls du sie als int bzw. float brauchst.
    Das Problem bei Strings mit variabler Laenge und variablem Vorkommen der gesuchten Zeichen(ketten). :) Sonst koenntest du ja einfach mit sscanf() arbeiten.
    Alternativ arbeitest du einfach mit pcre. Damit kannst du Regexes in C nutzen.
     
  4. zyon

    zyon undeadlyBSD

    Dabei seit:
    03.11.2005
    Beiträge:
    333
    Zustimmungen:
    0
    Ort:
    Göttingen
    sowas bitte nicht schreiben wenn dann sowas :

    Code:
    int sooolang = strlen(meinstring);
    for(i=0;i<=sooolang i++)
    
    ansonsten wird wie sooolang oben beschreiben hat jedesmal die funktion "strlen" aufgerufen.

    gruß

    zyon
     
  5. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Was rechenzeitmaessig nicht allzuviel ausmachen wuerde. *anmerk* Und solange der String nicht vom Benutzer definierbar ist, sehe ich auch sonst kein Problem damit, strlen() direkt in der Schleife zu nutzen.
     
  6. hwj

    hwj Doppel-As

    Dabei seit:
    23.06.2006
    Beiträge:
    131
    Zustimmungen:
    0
    Ort:
    Bei Buxtehude
    Verschwender !:oldman
     
  7. #6 RootUser, 07.09.2006
    RootUser

    RootUser Grünschnabel

    Dabei seit:
    04.09.2006
    Beiträge:
    8
    Zustimmungen:
    0
    ein strtok() auf "zu" würde mir da spontan einfallen... und dann halt schön mit atof() hingehen und viel spass mit deinen verhältnissen *g*
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

[c] bestimmte Zeichenfolgen aus String auslesen

Die Seite wird geladen...

[c] bestimmte Zeichenfolgen aus String auslesen - Ähnliche Themen

  1. Wie kann ich x Zeichen hinter einem bestimmten Wort ausgeben ?

    Wie kann ich x Zeichen hinter einem bestimmten Wort ausgeben ?: In mehreren Dateien ist immer mehrfach ein bestimmtes Wort enthalten, gefolgt von einem "=". Ich möchte mir die dahinter folgenden 10 Zeichen...
  2. Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen

    Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen: Hallo, ich würde gerne in einem Textdokument, z.B. von Zeile 10 - 18, an den Zeilenanfang ein # einfügen. Habe mir schon diverse Seiten zu SED...
  3. iptables blocke nur von bestimmter ip

    iptables blocke nur von bestimmter ip: Hallo, ich habe ein kleines Heimnetzwerk mit einem Router unter openWRT. Dort kann ich mittels iptables -I OUTPUT -p udp --dport 53 -m...
  4. Mit bash Skript bestimmte Werte aus Tabelle lesen

    Mit bash Skript bestimmte Werte aus Tabelle lesen: Hallo! Ich beschäftige mich erst seit Kurzem mit bash und bin deshalb noch nicht so fit darin. Und nun habe ich schon ein kleines Problem und...
  5. Kdbus auf unbestimmte Zeit verschoben

    Kdbus auf unbestimmte Zeit verschoben: Nachdem Kdbus Anfang der vergangenen Woche von Rawhide, der Entwicklerversion von Fedora, entfernt wurde, kündigten die Entwickler nun eine...