@[Micro_Seven](/user/291358)
```cpp
while (!isalpha(word[0]))
word.erase(word.begin()); //把单词前多余的非字母内容去掉
while (!isalpha(word.back()))
word.erase(word.end() - 1); //把单词后多余的非字母内容去掉
```
=>
执行删除操作前需要判断字符串是否已经为空,为空时执行删除操作会导致 $\texttt{Runtime Error}$。
```cpp
while (strlen(&word[0]) && !isalpha(word[0]))
word.erase(word.begin()); //把单词前多余的非字母内容去掉
while (strlen(&word[0]) && !isalpha(word.back()))
word.erase(word.end() - 1); //把单词后多余的非字母内容去掉
```
by metaphysis @ 2021-06-03 08:09:09
@[Micro_Seven](/user/291358)
您的代码还未考虑以下的输入情形:
```
12AB34CD56EF
```
即数字和字母间隔,正确输出为:
```
ab
cd
ef
```
按您的解题逻辑则会输出:
```
ab34cd56ef
```
by metaphysis @ 2021-06-03 08:13:10
@[metaphysis](/user/333388) 感谢您的 Hack 数据,自己想真想不到
by 我是人999 @ 2022-05-01 12:57:55