Zum Inhalt springen

Char Array vergleichen


thund3rf0x

Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.
Link zu diesem Kommentar
Auf anderen Seiten teilen

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! :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...