starts_with.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //
  2. // $Id$
  3. //
  4. #include<__vic/string_utils.h>
  5. #include<string>
  6. namespace __vic {
  7. //----------------------------------------------------------------------------
  8. bool starts_with(const char *s, size_t s_len, const char *pref)
  9. {
  10. for(; *pref; ++pref, ++s)
  11. if(s_len-- == 0 || *s != *pref) return false;
  12. return true;
  13. }
  14. //----------------------------------------------------------------------------
  15. bool starts_with(const char *s, size_t s_len, const char *pref, size_t pref_len)
  16. {
  17. if(s_len < pref_len) return false;
  18. return std::string::traits_type::compare(s, pref, pref_len) == 0;
  19. }
  20. //----------------------------------------------------------------------------
  21. bool starts_with(const char *s, const char *pref)
  22. {
  23. for(; *pref; ++pref, ++s)
  24. if(!*s || *s != *pref) return false;
  25. return true;
  26. }
  27. //----------------------------------------------------------------------------
  28. bool starts_with(const char *s, const char *pref, size_t pref_len)
  29. {
  30. for(; pref_len--; ++pref, ++s)
  31. if(!*s || *s != *pref) return false;
  32. return true;
  33. }
  34. //----------------------------------------------------------------------------
  35. } // namespace