Die letzten Zeichen von char*
-
Hallo!
Ich möchte wissen, ob die letzten vier Zeichen eines char* ".txt" sind.
Wie kriegt man das hin?
Danke schon mal!
-
Indem du Rückwärts suchst und dann guckst ob die letzten Zeichen so lang sind wie das gesuchte Wort bzw. ob die Position an der Position String-Länge minus gesuchte String-Länge ist:
bool endsWith(std::string const &s, std::string const &end) { return s.rfind(end) == s.length()-end.length(); }Edit: Oh, hab übersehen das es sich um char* handelt. Aber eigentlich kannst du das ja auch in einen string konvertieren, wenn du es schon mit C++ machst und dann o.g. Lösung verwenden. Ansonsten Setz einen Zeiger auf die Position im string abzüglich der Länge des gesuchten Strings und mach einen Gleichheitstest:
bool endsWith(char const *s, char const *end) { size_t szEnd = strlen(end); size_t szStr = strlen(s); if(szStr>=szEnd) { char const *p = &s[szStr-szEnd]; return strcmp(p, end) == 0; } return false; }Greetz