Wie Vergleichen Sie die Letzten n Zeichen Eines Strings an einen Anderen String in C
Stell dir vor, ich habe zwei Saiten, eine davon ist eine url wie "/sdcard/test.avi" und der andere ist"/sdcard/test.mkv". Ich möchten, schreiben Sie eine if-Anweisung, die überprüft, ob die letzten vier Zeichen des Strings ist ".avi" oder nicht in C. Wie kann ich dies tun? Mit strcmp oder was und wie?
InformationsquelleAutor sjor | 2011-03-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie einen Zeiger auf char array
str
, dann dies:geben Sie einen Zeiger auf die vier letzten Zeichen der Zeichenfolge. Sie können dann mit
strcmp()
. Beachten Sie, dass Sie benötigen, zu bewältigen mit dem Fall, wo(len < 4)
, in welchem Fall die oben werden nicht gültig.Seine einfache Lösung. Ich bin nur zufällig zu müssen, es heute! Danke.
InformationsquelleAutor Oliver Charlesworth
Nur durchführen
if ( strcmp(str1+strlen(str1)-4, str2+strlen(str2)-4) == 0 ) {}
.Stellen Sie sicher, dass beide strings sind mindestens 4 Zeichen lang sein.
&str1[strlen(str1)-4]
etc.Bearbeitet, vielen Dank.
InformationsquelleAutor Assaf Levy
In reinem C kann man nur noch auf die manuelle vergleichen:
InformationsquelleAutor Vlad
Wie wäre es damit...
char *strrchr(const char *str, int c)
- Gibt einen Zeiger auf den letzten passenden char gefunden in der Zeichenfolge, einschließlich der NULL-Zeichen, wenn Sie so angeben. In diesem Fall habe ich es verwenden, um einen Zeiger auf das Ende der Schnur und dann bewege ich den Zeiger 4 Schritte zurück, so dass ein Zeiger auf den letzten 4 Zeichen des Strings.Dann Vergleiche ich die letzten 4 chars zu ".avi" und wenn Sie übereinstimmen, strcmp gibt 0 oder logisch FALSCH, die ich umkehren in mein 'wenn' - Bedingung.
InformationsquelleAutor John Byrne
InformationsquelleAutor prashant
Hier ist eine generische Funktion, um zu testen:
InformationsquelleAutor Shamim Hafiz