mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
/*
|
|
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version.
|
|
*/
|
|
|
|
#include "Helpers.h"
|
|
|
|
char* strstri(char const* haystack, char const* needle)
|
|
{
|
|
if (!*needle)
|
|
{
|
|
return (char*)haystack;
|
|
}
|
|
|
|
for (; *haystack; ++haystack)
|
|
{
|
|
if (tolower(*haystack) == tolower(*needle))
|
|
{
|
|
char const* h = haystack, * n = needle;
|
|
for (; *h && *n; ++h, ++n)
|
|
{
|
|
if (tolower(*h) != tolower(*n))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!*n)
|
|
{
|
|
return (char*)haystack;
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
std::string& ltrim(std::string& s)
|
|
{
|
|
s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](int c) {return !std::isspace(c); }));
|
|
return s;
|
|
}
|
|
|
|
std::string& rtrim(std::string& s)
|
|
{
|
|
s.erase(std::find_if(s.rbegin(), s.rend(), [](int c) {return !std::isspace(c); }).base(), s.end());
|
|
return s;
|
|
}
|
|
|
|
std::string& trim(std::string& s)
|
|
{
|
|
return ltrim(rtrim(s));
|
|
}
|