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. Zitieren
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. Zitieren
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! Zitieren
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) Zitieren
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.