StringBuilder.cpp 604 B

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