Форум программистов, компьютерный форум CyberForum.ru

Найти среднюю длину слова в тексте - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Стеки http://www.cyberforum.ru/cpp-beginners/thread701602.html
Сделал очередь, а вот кольцевой не получается, подскажите как сделать. #include <iostream> using namespace std; int main() { int val; int last; int const size = 100;
C++ Задача на множества Реализовать 2 представления множеств в памяти ЭВМ в программе(через машинное слово и массив битов), которая по заданным множествам A, B, C, D строчных русских букв вычисляет множество, содержащие все буквы из А и все буквы из В, но не содержащего букв, являющихся общими для C и D. http://www.cyberforum.ru/cpp-beginners/thread701599.html
C++ Как заполнить массив буквами английского алфавита ?
26 букв Добавлено через 48 секунд 26 букв с помощью цикла for и по порядку ! Заранее спасибо!
C++ Рекурсия
не знаю как это сделать..помогите
C++ Функция возведения в степень http://www.cyberforum.ru/cpp-beginners/thread701551.html
Добрый день. Ребята, помогите решить проблему. Написал функцию для вычисления действительных корней кубического уравнения. возникает непонятная ситуация в случае, когда дискриминант D > 0. При извлечении корня третей степени, для нахождения коэффициентов, функция pow() в случае, когда основание отрицательно, выдает какое-то левое число... ведь вроде и в основании и в показателе степени...
C++ Нестандартная запись if Вечер добрый всем. Вспоминал как работать с указателями и нарвался на вот такой вот образец if if((Rprev=*r+(r==RST?0:*s-Rprev))>0) стандартно идет if(условие) и так далее, но здесь мы присваиваем , приравниваем да и еще ?0: можете объяснить почему все так зверски записано и что значит "?0:" ? подробнее

Показать сообщение отдельно
DiffEreD
 Аватар для DiffEreD
1424 / 761 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
20.11.2012, 23:53     Найти среднюю длину слова в тексте
Вот со strtok():
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cstring>
#include <iostream>
 
int main() 
{
    setlocale (LC_ALL, "Russian");
    char input[100] = "Finds the next token in a null terminated byte string pointed to by str";
    char *token = std::strtok(input, " ");
    int countOfwords = 0;
    int countOfchars = 0;
    while (token != NULL) {
        countOfwords++;
        countOfchars += std::strlen(token);
        token = std::strtok(NULL, " ");
    }
    std::cout<<"Средняя длина слов в тексте: "<<countOfchars/countOfwords<<std::endl;
    system("pause");
    return 0;
}
А вот с STL немного поигрался:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <sstream>
#include <numeric>
#include <iterator>
using std::string;
 
int main()
{
    setlocale (LC_ALL, "Russian");
    string str = "Finds the next token in a null terminated byte string pointed to by str";
    std::stringstream ss(str);
    auto sum = std::accumulate(std::istream_iterator<string>(ss), std::istream_iterator<string>(), std::pair<size_t, size_t>(), 
        [](std::pair<size_t, size_t>& r, const string& l){r.first++; r.second+=l.size(); return r;});
    std::cout<<"Средняя длина слов в тексте: "<<sum.second/sum.first<<std::endl;
    system("pause");
    return 0;
}
 
Текущее время: 08:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru