Joshi274
-
Gesamte Inhalte
4 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Joshi274
-
-
Der Fehler an sich ist das ich nach dem zerteilen den letzten teil, nämlich " - give it to gsm" , nicht mit meinem string, in dem exakt das selbe steht vergleichen kann, er sagt mir dann die seien nicht gleich.
Deswegen war meine Vermutung das vllt hinter dem letzten Abschnitt der strtok Methode noch Leezeichen oder Zeilenumbrüche sind, ansonsten müssten sie doch übereinstimmen
-
Soll was genau heißen?
-
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.
String zerteilen
in Anwendungsentwickler und Programmierer
Geschrieben
Diese Lösung finde ich sehr gut, danke dir für deine Hilfe, das ist sehr viel einfacher als meins
Das Problem mit dem Abschnitt vergleichen bleibt aber trotzdem. Ich habe den String nun erweitert und lasse nur bis zu dem Punkt suchen wo ich es haben will, da alles was nicht Ende ist ja erkannt und bestätigt wird das es gleich ist. Nicht optimal aber solange es funktioniert ist das ok.
Schreibt mir dennoch gerne noch Lösungen für das Problem, da meine Lösung sicher nicht immer gehen wird.