МТ
Муродали Тагоймуродов

Напишите пож программу на языке С++ В строке найдите первое число и удалите его, удаление оформить в виде функции

АК
Анастасия Колупанова

#include
#include

void remove_first_number(std::string &s) {
bool n = false;
bool w = false;
int b = -1, e = -1;
for (size_t c = 0; c <= s.size(); ++c) {
if (!n && !w && c < s.size() && !(isspace(s[c]) || ispunct(s[c]))) {
if (isdigit(s[c])) {
n = true;
b = c;
} else {
w = true;
}
} else if (w && c < s.size() && (isspace(s[c]) || ispunct(s[c]))) {
w = false;
} else if (n && (c == s.size() || isspace(s[c]) || ispunct(s[c]))) {
e = c;
break;
} else if (n && !isdigit(s[c])) {
n = false;
w = true;
}
}
if (e > 0) s.erase(b, e - b);
}

int main() {
std::string s;
std::cout << "string? ";
std::getline(std::cin, s);
remove_first_number(s);
std::cout << "result: " << s << std::endl;
}

Семакова
Семакова

Напишите на email.

Похожие вопросы
Удаление части строки посредством функции preg_replace в php.
Напишите программу, которая выводит все числа первой сотни, оканчивающееся на 2
Делфи удаление повторов. Дана строка, создать вторую строку что содержит все элементы первой без повторов.
Напишите любую интересную программу на языке Pascal. Максимум строк-30.
Как удалить программу Zona? В панели управления (удалении программ) её нет.
Написать любую программу на языке Паскаль. Максимальное число строк кода - 30. Не забудьте написать название программы!
Программа нахождения наибольшего слова в строке. Найдите ошибку!
найти число вхождений каждого из символов первой строки во вторую строку си++
ЯЗЫК СИ! Ввести строку с клавиатуры и удалить лишние пробелы из этой строки
Составьте программу, выводящую на экран в первую строку-честные числа в диапазоне от 1 до 20 через пробел