thund3rf0x Geschrieben 24. November 2010 Geschrieben 24. November 2010 Hallo, ich hab folgendes Problem. Ich möchte ein Char Array mit einem erwarteten Inhalt vergleichen. Das Problem ist nur, dass der erwartete Wert Variablen enthält. Der erwartete Wert sieht so aus: ("Sector%010ld___Disk_Check_____ID%010ld__", start, id); Die Variable "start" ändert sich, und das Vergleichen findet öfter statt. Ich habe mich schon mit der "strcmp" versucht.... Das sieht bei mir so aus: if(strcmp(buffer, ("Sector%010ld___Disk_Check_____ID%010ld__") ) == 0); So läufts zwar durch, aber wie bekomme ich da meine Variablen mit rein? Weil so überprüft er ja nur, ob an dene bestimmten Stellen Zahlen stehen, ich muss aber wissen, ob dort genau der erwartete Wert steht... Hat jemand eine Idee, wie ich das machen könnte? Ich hab auch überlegt, dass man den erwarteten Wert aufgliedert, hab aber keine Lösung dafür gefunden.
Klotzkopp Geschrieben 24. November 2010 Geschrieben 24. November 2010 Weil so überprüft er ja nur, ob an dene bestimmten Stellen Zahlen stehen,Wie kommst du darauf? Das kann strcmp gar nicht. ich muss aber wissen, ob dort genau der erwartete Wert steht... In einem Schritt geht das nicht. Mach zwei draus: Bau dir mit sprintf einen String zusammen, der genauso wie der erwartete aussieht. Dann kannst du auch vergleichen.
thund3rf0x Geschrieben 24. November 2010 Autor Geschrieben 24. November 2010 Wie kommst du darauf? Das kann strcmp gar nicht. Naja ich dachte das, weil ich keine Fehlermeldung bekam, und die if-Abfrage erfolgreich war, obwohl eigentlich kein Wert bei "%010ld" vorhanden war... Aber gut, das wusste ich nicht.. In einem Schritt geht das nicht. Mach zwei draus: Bau dir mit sprintf einen String zusammen, der genauso wie der erwartete aussieht. Dann kannst du auch vergleichen. Hat wunderbar funktioniert, danke dir!
Klotzkopp Geschrieben 24. November 2010 Geschrieben 24. November 2010 Naja ich dachte das, weil ich keine Fehlermeldung bekam, und die if-Abfrage erfolgreich war, obwohl eigentlich kein Wert bei "%010ld" vorhanden war..."Erfolgreich" war es vermutlich nur, weil du das Ergebnis falsch interpretiert hast. Bei Übereinstimmung gibt strcmp 0 zurück. Mit if(strcmp(x,y)) prüfst du also auf Ungleicheit, weil das gleichbedeutend ist mit if(strcmp(x,y) != 0)
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