You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

string.h 3.2 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /**
  2. * Copyright 2020 Huawei Technologies Co., Ltd
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #ifndef MINDSPORE_LITE_INTERNAL_SRC_STRING_H_
  17. #define MINDSPORE_LITE_INTERNAL_SRC_STRING_H_
  18. #include <string.h>
  19. #include <stdint.h>
  20. typedef struct String {
  21. public:
  22. String();
  23. String(size_t count, char ch);
  24. String(const char *s, size_t count);
  25. explicit String(const char *s);
  26. String(const String &other);
  27. String(const String &other, size_t pos, size_t count = npos);
  28. ~String();
  29. String &operator=(const String &str);
  30. String &operator=(const char *str);
  31. char &at(size_t pos);
  32. const char &at(size_t pos) const;
  33. inline char &operator[](size_t pos);
  34. inline const char &operator[](size_t pos) const;
  35. char *data() noexcept;
  36. const char *data() const noexcept;
  37. const char *c_str() const noexcept;
  38. // capacity
  39. bool empty() const noexcept;
  40. size_t size() const noexcept;
  41. size_t length() const noexcept;
  42. // operations
  43. void clear() noexcept;
  44. String &append(size_t count, const char ch);
  45. String &append(const String &str);
  46. String &append(const char *s);
  47. String &operator+=(const String &str);
  48. String &operator+=(const char *str);
  49. String &operator+=(const char ch);
  50. int compare(const String &str) const;
  51. int compare(const char *str) const;
  52. String substr(size_t pos = 0, size_t count = npos) const;
  53. static const size_t npos = -1;
  54. private:
  55. size_t size_;
  56. char *buffer_;
  57. } String;
  58. bool operator==(const String &lhs, const String &rhs);
  59. bool operator==(const String &lhs, const char *rhs);
  60. bool operator==(const char *lhs, const String rhs);
  61. bool operator!=(const String &lhs, const String &rhs);
  62. bool operator!=(const String &lhs, const char *rhs);
  63. bool operator!=(const char *lhs, const String rhs);
  64. bool operator<(const String &lhs, const String &rhs);
  65. bool operator<(const String &lhs, const char *rhs);
  66. bool operator<(const char *lhs, const String rhs);
  67. bool operator>(const String &lhs, const String &rhs);
  68. bool operator>(const String &lhs, const char *rhs);
  69. bool operator>(const char *lhs, const String rhs);
  70. bool operator<=(const String &lhs, const String &rhs);
  71. bool operator<=(const String &lhs, const char *rhs);
  72. bool operator<=(const char *lhs, const String rhs);
  73. bool operator>=(const String &lhs, const String &rhs);
  74. bool operator>=(const String &lhs, const char *rhs);
  75. bool operator>=(const char *lhs, const String rhs);
  76. String to_String(int32_t value);
  77. String to_String(int64_t value);
  78. String to_String(uint32_t value);
  79. String to_String(uint64_t value);
  80. String to_String(float value);
  81. String to_String(double value);
  82. String to_String(long double value);
  83. #endif // MINDSPORE_LITE_INTERNAL_SRC_STRING_H_