ich bin relativ neu in der Programmierwelt und habe noch keine Große Erfahrung mit Fehlern oder in meinem Fall:
Probleme die auftretten, aber keine Fehlermeldung aufgeben.
Ich habe das Problem das ich via der Funktion strtok einen String zerteile und in ein Array speichern will.
Soweit alles kein Problem, doch wenn ich jetzt die Werte in dem Array mit strcmp (also ja , der Inhalt, nicht der pointer) mit einem 2ten String vergleichen will, dann klappt das bei jedem außer bei dem letzten Abschnitt. Also klappen tut es schon nur stimmen alle überein, nut der letzte will nicht, deswegen meine Frage: Endet der String mit dem letzten Zeichen oder sind dort noch Leerzeichen oder ähnliches angehängt?
if (strcmp(stringteiler[1], "75") == 0 && strcmp(stringteiler[2], " - give it to gsm") == 0) //Fehler bei strinteiler[2]
{
printf("Condition is given\n");
}
else
{
printf("Condition isn't given\n");
}
break;
}
...
Falls ich was vergessen habe reinzustellen oder etwas falsch übertragen habe, bitte melden. Im Programm selbst funktioniert alles.
Frage
Joshi274
Hallo Leute,
ich bin relativ neu in der Programmierwelt und habe noch keine Große Erfahrung mit Fehlern oder in meinem Fall:
Probleme die auftretten, aber keine Fehlermeldung aufgeben.
Ich habe das Problem das ich via der Funktion strtok einen String zerteile und in ein Array speichern will.
Soweit alles kein Problem, doch wenn ich jetzt die Werte in dem Array mit strcmp (also ja , der Inhalt, nicht der pointer) mit einem 2ten String vergleichen will, dann klappt das bei jedem außer bei dem letzten Abschnitt. Also klappen tut es schon nur stimmen alle überein, nut der letzte will nicht, deswegen meine Frage: Endet der String mit dem letzten Zeichen oder sind dort noch Leerzeichen oder ähnliches angehängt?
Quelltext:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int k, l, u ;
char* stringteiler[10] = {0} ;
char begin[ ] = "D:MAIN esp sending data <" ;
char line [5000] = "D:MAIN esp sending data <75> - give it to gsm"
...
if (strncmp(begin, line, 25) == 0) // Vergleich
{
printf("********This is maybe the right String: %s", line);
char *ptr;
char delimiter[] = "<>";
ptr = strtok(line, delimiter);
for (u=0; ptr !=NULL; u++)
{
printf("section found: %s\n", ptr);
stringteiler = ptr;
ptr = strtok(NULL, delimiter);
}
for (l=0; l<u; ++l)
{
printf ("Stringteiler[%u]: %s\n", l, stringteiler[l]);
}
if (strcmp(stringteiler[1], "75") == 0 && strcmp(stringteiler[2], " - give it to gsm") == 0) //Fehler bei strinteiler[2]
{
printf("Condition is given\n");
}
else
{
printf("Condition isn't given\n");
}
break;
}
...
Falls ich was vergessen habe reinzustellen oder etwas falsch übertragen habe, bitte melden. Im Programm selbst funktioniert alles.
Bearbeitet von Joshi274Link zu diesem Kommentar
Auf anderen Seiten teilen
8 Antworten auf diese Frage
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.