StringBuilder.cpp 754 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "StringBuilder.h"
  2. void StringBuilder::append(const char* s)
  3. {
  4. char* tail = buffer + length;
  5. strcpy(tail, s);
  6. length += strlen(tail);
  7. }
  8. void StringBuilder::appendEscaped(const char* s)
  9. {
  10. if (length > capacity - 3) return;
  11. buffer[length++] = '"';
  12. while (*s && length<capacity-2)
  13. {
  14. if (*s == '"')
  15. buffer[length++] = '\\';
  16. buffer[length++] = *s;
  17. s++;
  18. }
  19. buffer[length++] = '"';
  20. }
  21. void StringBuilder::appendFormatted(const char* format, ...)
  22. {
  23. char* tail = buffer + length;
  24. va_list args;
  25. va_start(args, format);
  26. vsnprintf(tail, capacity - length, format, args);
  27. va_end(args);
  28. length += strlen(tail);
  29. }