Beispiele für C Programmierung : String zerlegen und splitten (parsen)

In diesem Beispiel haben wir ein Text mit der Variablenname "string". Im Text sind verschiedene Werte, die per Sonderzeichen getrennt sind. Hier sind die z.B. Datum, Uhrzeit und Wochentag. Nun möchten wir String zerteilen und jeden Wert separat ausgeben. Mit der Funktion strtok kann man ein string in C zerteilen.

1. Wir erstellen ein Zeiger, der uns die aktuelle Position zeigt, wo wir uns befinden. In diesem Fall habe ich es "ptr" genannt
2. Wir erstellen eine weitere Variable, in dem wir unser Trennzeichen speichern
3. Wir initialisieren den ersten Abschnitt, in dem Fall Datum
4. Nun brauchen wir eine Schleife, mit der wir durch den ganzen String durchlaufen können
5. In der Schleife geben wir die Werte aus und dann holen wir den nächsten Abschnitt
6. Wenn man strtok als Parameter "NULL " eingibt, springt er bis zur Abschnittsende

#include #include // String Bibliothek einbinden

int main(){
char string[]="01.01.2015#12:00:05#Donnerstag";
char *ptr;
char delimiter[]="#";

ptr = strtok(string, delimiter);

while(ptr !=NULL){ // wiederhole solange bis ptr leer ist bzw. NULL
printf("%s \n",ptr); // aktuellen Abschnitt ausgeben
ptr = strtok(NULL, delimiter); // den nächsten Abschnitt holen
}

return 0;
}

Neuen Kommentar schreiben

CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Suche

Neueste Kommentare

  • 4 weeks ago
    Transaction isolation level REPEATABLE-READ The recommended level for Drupal is "READ COMMITTED". (Drupal Status Report)

     Edit "/etc/my.cnf" ( under [mysqld] ):

    transaction_isolation="READ-COMMITTED"

    Restart MariaDB / MySQL:

  • 1 month ago
    Wget - Eine Webseite rekursive downloaden

    wget -U 'Mozilla/MyUserAgent' -P MyTempDir123 --wait=0.2 --random-wait -nd -r -x -l 4 -e robots=off --reject

  • 1 month ago
    Wget - Eine Webseite rekursive downloaden

    wget -U 'Mozilla/MyUserAgent2024' -P MyOutPutDirectory --wait=1 --random-wait -nd -r -l 2 -e robots=off --reject

  • 2 months 1 week ago
    CPU benchmarking with sysbench (single-threaded/all cores)

     

    # sysbench --threads="$(nproc)" cpu run

  • 2 months 1 week ago
    CPU benchmarking with sysbench (single-threaded/all cores)

    # sysbench --threads="$(nproc)" cpu run

  • 2 months 1 week ago
    Linux Autovervollständigung - bash autocomplete
    source ~/.bashrc

    Diese Lösung wird empfohlen aber hat bei mir nicht funktioniert.

    Welche Alternative gibt es?

  • 2 months 1 week ago
    PHP-CLI auf PHP8.2 umstellen (für Composer, Drush etc)

    ln -snf /opt/plesk/php/8.3/bin/php /etc/alternatives/php

  • 2 months 1 week ago
    Drush Update failed (require php >=8.2)

    In composer.json, update: 

     

  • 2 months 1 week ago
    Drupal: Anmeldung fehlgeschlagen Es hat mehr als 5 fehlerhafte Anmeldeversuche für dieses Benutzerkonto gegeben. Es ist vorübergehend gesperrt.
    drush sqlq "DELETE FROM flood"
  • 2 months 1 week ago
    Drupal SMTP + Gmail funktioniert nicht mehr (Passwort ist richtig); was ist die Lösung?