У меня вопрос по поводу C ++.Это моя текущая функция:
string clarifyWord(string str) {
//Remove all spaces before string
unsigned long i = 0;
int currentASCII = 0;
while (i < str.length()) {
currentASCII = int(str[i]);
if (currentASCII == 32) {
str.erase(i);
i++;
continue;
} else {
break;
}
}
//Remove all spaces after string
i = str.length();
while (i > -1) {
currentASCII = int(str[i]);
if (currentASCII == 32) {
str.erase(i);
i--;
continue;
} else {
break;
}
}
return str;
}
Просто чтобы разобраться с основными и очевидными вещами, у меня есть #include <string>
и using namespace std;
, поэтому у меня есть доступ к строковым функциям.
Дело в том, что цикл завершается, а иногда пропускает второй цикл.Я передаю в str
значение " Cheese "
, и оно должно удалить все пробелы перед строкой и после строки.
В основной функции я также назначаю переменную clarifyWord(str)
, гдеstr
выше.Кажется, это не распечатывается с использованием cout << str;
.
Есть ли что-то, чего мне не хватает при печати строк или зацикливании строк?Также код ASCII 32
равен Space
.