Я считываю строку, состоящую из чисел, разделенных различными символами, как удалить из строки все символы, заменив их на пробелы. (хочу посчитать сумму этих чисел в конечном итоге). Ограничу условия - числа целые, но могут быть отрицательными, примеры входных последовательностей : "1,2,._3" Итог суммы : 6
Если это char*
-
for(char * c = s; *c; ++s)
if (!isdigit(*c)) *c = ' ';
Если это строка string
- то, в принципе, так же:
for(size_t i = 0; i < s.length(); ++i)
if (!isdigit(s[i])) s[i] = ' ';
Update
Ага, раз вопрос не в замене всех символов на пробелы (см. заголовок вопроса), то вот другое решение:
#include <string>
#include <iostream>
#include <iomanip>
#include <sstream>
using namespace std;
string s = "123vbn12g12hj321.nb3jk.123-ftfy21tf-1.3e2bjh";
int main(int argc, const char * argv[])
{
cout << s << endl;
istringstream is(s);
double sum = 0.0;
for(double x;;)
{
is >> x;
if (!is.fail())
{
cout << "get " << x << endl;
sum += x;
continue;
}
if (is.eof()) break;
is.clear();
is.ignore(1);
}
cout << sum << endl;
}
https://ideone.com/QDatJA
#include <cstdio>
int main()
{
char s[256], *p;
int x;
int n;
fgets(s, sizeof s, stdin);
// add n after check p to allow last iteration when the number is at the end
for (p=s; sscanf(p, "%*[^-0-9]%n", &(n=0)), sscanf(p+=n, "%d%n", &x, &(n=0)), *p; p+=n)
if (n)
printf("%d ", x);
else
++p; // skip '-'
return 0;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Привет! Помогите пожалуйста с создать алгоритм для суммы произведенийДолжен быть цикл в цикле, первый сделал (произведение), а как теперь...
Я создаю сокет, привязываю его к порту 33005Далее хочу узнать к какому порту привязан сокет, но почему-то sockaddr_in
Требуется создать указатель на функцию at() стандартного вектора, например std::vector
Правильно ли я сделал алгоритм к заданию? (Оно на картинке в углу)