Veröffentlicht 24. November 201014 j 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.
24. November 201014 j 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.
24. November 201014 j 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!
24. November 201014 j 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)
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.