📄 string.cc
字号:
// Larbin// Sebastien Ailleret// 20-12-99 -> 08-03-00#include <assert.h>#include <string.h>#include <iostream.h>#include "xutils/text.h"#include "xutils/string.h"#include "xutils/debug.h"// ConstructorString::String (uint size) { chaine = new char[size]; this->size = size; pos = 0;}// DestructorString::~String () { delete [] chaine;}// Recycle this stringvoid String::recycle (uint size) { if (this->size < size) { delete [] chaine; chaine = new char[size]; this->size = size; } pos = 0;}// get the char *char *String::getString () { chaine[pos] = 0; return chaine;}/** give a new string (allocate a new one * the caller will have to delete it */char *String::giveString () { chaine[pos] = 0; return newString(chaine);}// append a charvoid String::addChar (char c) { chaine[pos] = c; pos++; if (pos >= size) { char *tmp = new char[size * 2]; memcpy(tmp, chaine, pos); delete [] chaine; chaine = tmp; size *= 2; }}// append a char *void String::addString (char *s) { uint len = strlen(s); if (size <= pos + len) { size = pos + len + 1; char *tmp = new char[size]; memcpy(tmp, chaine, pos); delete [] chaine; chaine = tmp; } memcpy(chaine+pos, s, len); pos += len;}// append a buffervoid String::addBuffer (char *s, uint len) { if (size <= pos + len) { size = pos + len + 1; char *tmp = new char[size]; memcpy(tmp, chaine, pos); delete [] chaine; chaine = tmp; } memcpy(chaine+pos, s, len); pos += len;}// get a char of this stringchar String::operator [] (uint i) { myAssert(i<=pos, "buffer overflow in String oper []"); if (i==pos) { return 0; } else { return chaine[i]; }}// change a charvoid String::setChar (uint i, char c) { chaine[i] = c;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -