Small tweaks for the String class

svn-id: r14293
This commit is contained in:
Max Horn 2004-07-21 14:20:37 +00:00
parent 9dfee6c315
commit 0605918ab4
2 changed files with 10 additions and 5 deletions

View file

@ -108,6 +108,14 @@ String &String::operator =(const String &str) {
return *this; return *this;
} }
String& String::operator =(char c) {
ensureCapacity(1, false);
_len = 1;
_str[0] = c;
_str[1] = 0;
return *this;
}
String &String::operator +=(const char *str) { String &String::operator +=(const char *str) {
int len = strlen(str); int len = strlen(str);
if (len > 0) { if (len > 0) {
@ -139,10 +147,6 @@ String &String::operator += (char c) {
return *this; return *this;
} }
char String::lastChar() const {
return (_len > 0) ? _str[_len-1] : 0;
}
void String::deleteLastChar() { void String::deleteLastChar() {
if (_len > 0) { if (_len > 0) {
ensureCapacity(_len - 1, true); ensureCapacity(_len - 1, true);

View file

@ -70,6 +70,7 @@ public:
uint size() const { return _len; } uint size() const { return _len; }
bool isEmpty() const { return (_len == 0); } bool isEmpty() const { return (_len == 0); }
char lastChar() const { return (_len > 0) ? _str[_len-1] : 0; }
}; };
class String : public ConstString { class String : public ConstString {
@ -94,6 +95,7 @@ public:
// An alternative would be to add private clone() and cloneMutable methods that // An alternative would be to add private clone() and cloneMutable methods that
// would do the right thing. // would do the right thing.
String &operator =(const String &str); String &operator =(const String &str);
String &operator =(char c);
String &operator +=(const char *str); String &operator +=(const char *str);
String &operator +=(const String &str); String &operator +=(const String &str);
String &operator +=(char c); String &operator +=(char c);
@ -108,7 +110,6 @@ public:
return _str[idx]; return _str[idx];
} }
char lastChar() const;
void deleteLastChar(); void deleteLastChar();
void deleteChar(int p); void deleteChar(int p);
void clear(); void clear();