Member 12852923 Ответов: 3

Количество слов, которые являются целыми числами


Приведем пример строки "Здравствуйте, здесь 200 яблок, и каждое яблоко весит от 100 до 300 граммов". Я должен посчитать количество слов, которые являются целыми числами, такими как 200 100 300. Как это сделать. подойдут любые фрагменты кода на C, C++.

Что я уже пробовал:

Я не могу понять логику. Я понятия не имею о том, как извлекать целые числа из строки

3 Ответов

Рейтинг:
20

CPallini

Попробуйте, например:

 #include <iostream>
 #include <string>
 #include <sstream>
 #include <cstdlib>
 using namespace std;

int main()
{
  string line = "hello there are 200 apples and each apple weighs 100 to 300 grams";

  istringstream iss(line);

  while ( iss.good() )
  {
    char *pe;
    string s;
    iss >> s;
    long l = strtol(s.c_str(), &pe, 10);
    if ( *pe == '\0')
      cout << l << endl;
  }

}



Member 12852923

Спасибо, что это работает. Что такое хорошо ()?

CPallini

"Что хорошего в компьютеризированном носе" :-)

Видеть
http://www.cplusplus.com/reference/ios/ios/good/

Рейтинг:
2

Patrice T

Цитата:
Как это сделать. подойдут любые фрагменты кода на C, C++.

Мы не делаем вашу домашнюю работу.
Домашнее задание предназначено не для того, чтобы проверить ваши навыки просить других людей выполнять вашу работу, а для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание пройденных вами курсов, а также проблем, возникающих при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по их исправлению.
Итак, попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

Как программист, ваша задача-создавать алгоритмы это решает конкретные проблемы, и вы не можете полагаться на кого-то другого, чтобы вечно делать это за вас, поэтому есть время, когда вам придется научиться этому. И чем скорее, тем лучше.
Когда вы просто просите решение, это все равно что пытаться научиться водить машину, обучая кого-то другого.

Цитата:
Я не могу понять логику. Я понятия не имею о том, как извлекать целые числа из строки
Вы должны подумать, как бы вы это сделали с листом бумаги и карандашом.


Member 12852923

Это не домашняя работа. Если вы хотите помочь пожалуйста помогите но не говорите глупостей

Patrice T

Это домашнее задание.
Такого рода проблемы являются проблемой только для очень начинающих, и единственная цель этих проблем состоит в том, чтобы заставить вас думать и пытаться разработать алгоритм, который решит эту проблему.

[no name]

Помощь-это не всегда кто-то, кто делает за вас вашу работу. Единственное, что вы узнали здесь сегодня, это то, что если вы попросите кого-то сделать за вас домашнее задание, кто-то сделает это. Может быть, вам стоит сначала попробовать самому, прежде чем умолять кого-то сделать это за вас. Чем вы могли бы чему-нибудь научиться.

Рейтинг:
0

KarstenK

Это действительно легко сделать за 2 шага.

1. Разделите строку на слова (подстроку) с помощью токенизатора строк. Уже обработано здесь.
2. проверьте все подстроки, если они являются целыми числами с Атой.

Вам нужны только функции strtok и atoi и написать какой-то код. ;-)