C++【String类】String头插单个字符,头删单个字符的函数实现
时间: 2023-07-28 18:19:23 浏览: 42
下面是头插单个字符的函数实现:
```c++
void String::insert(char ch) {
char *newStr = new char[length + 2];
newStr[0] = ch;
for (int i = 0; i < length; i++) {
newStr[i+1] = str[i];
}
newStr[length+1] = '\0';
delete[] str;
str = newStr;
length++;
}
```
下面是头删单个字符的函数实现:
```c++
void String::remove() {
if (length == 0) {
return;
}
char *newStr = new char[length];
for (int i = 1; i < length; i++) {
newStr[i-1] = str[i];
}
newStr[length-1] = '\0';
delete[] str;
str = newStr;
length--;
}
```
这里假设 `str` 是一个指向字符串的指针,`length` 是字符串的长度。头插单个字符就是在原来字符串的前面插入一个字符,需要新建一个长度为 `length+2` 的字符数组,将要插入的字符放到第一个位置,然后将原来的字符串复制到新的数组中。最后记得释放原来的字符串,并将指针指向新的字符串。
头删单个字符就是删除第一个字符,需要新建一个长度为 `length` 的字符数组,将原来字符串中第二个字符开始的子串复制到新的数组中。最后记得释放原来的字符串,并将指针指向新的字符串。需要注意的是,如果字符串本来就是空串,则不进行任何操作。