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 Joshi2748 Antworten auf diese Frage
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden