Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Подсчёт слов и символов в итераторе


Автор: Abbath1349 5.1.2011, 18:23
подскажите как подсчитать количество знаков и символов в итераторах типа    std::vector<std::string>::iterator it; ?

Автор: KaraKum 5.1.2011, 18:40
Вот так?:
Код

std::vector<std::string> something;
int symbolsCount = 0;
for(std::vector<std::string>::iterator it = something.begin(); it != something.end(); it++)
{
     symbolsCount += (*it).length;
}
printf("something (really - what is it?) has %d symbols.\n", symbolsCount);

Автор: Abbath1349 5.1.2011, 19:21
Ну я не совсем это имел ввиду надо подсчитать количество знаков без пробела и количество слов.

Автор: KaraKum 5.1.2011, 19:29
Код

std::vector<std::string> something;
int nonspaceSymbolsCount = 0;
int wordsCount = 0;
for(std::vector<std::string>::iterator it = something.begin(); it != something.end(); it++)
{
     //началось ли уже новое слово:
     bool isWord = false;
     //сколько вообще всяких символов в этой строке:
     const int symbolsCount = (*it).length;
     for(int i = 0; i < symbolsCount; i++)
     {
          //если НЕ пробел:
          if((*it)[i] != ' ')
          {
               nonspaceSymbolsCount++;
               //если прежде были только пробелы или это первый непробельный символ в этой строке:
               if(!isWord)
               {
                    isWord = true;
                    wordsCount++;
               }
               //в противном случае текущий символ лишь часть уже подсчитанного (учтённого) слова...
          }
          //предыдущее слово однозначно закончилось (неважно сколько пробелов после него):
          else
          {
               isWord = false;
          }
     }
}
printf("non-space symbols count: %d; words count: %d.\n", nonspaceSymbolsCount, wordsCount);


Добавлено @ 19:30
Думаю будет работать.

Автор: Abbath1349 5.1.2011, 19:54
Да действительно работает спасибо)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)