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

Поиск количества слов строке(как можно проще) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ порядковый номер буквы http://www.cyberforum.ru/cpp-beginners/thread512729.html
очень простая функция, возвращающая порядковый номер буквы в алфавите, но она возвращает всякую хрень. при вводе 'я' return 17 при вводе 'с' выводит 2 и так буквы , которые между С и Я. другия буквы...
C++ Описать класс Список (линейный односвязный список) Описать класс Список (линейный односвязный список). Я создала список,просматриваю его,сравниваю на равенство два списка.......У меня проблемы со вставкой и удалением....Необходимо:вставить элемент с... http://www.cyberforum.ru/cpp-beginners/thread512726.html
C++ string массив
Как создать массив в который буду я вводить данные ? Написал не большой код : // Lab_1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream>...
Алгоритм замещения страниц LRU с помощью методов библиотеки STL C++
Здравствуйте! Мне нужно реализовать алгоритм замещения страниц LRU с помощью методов библиотеки STL. Подскажите пожалуйста, как это сделать лучше всего, чтобы было просто и понятно?
C++ Количество свободного места на диске http://www.cyberforum.ru/cpp-beginners/thread512687.html
Мне вообще-то нужно узнать когда заполниться определённый диск, после этого совершить необходимые действия. Поиск на форуме и в интернете результата не дал, прошу помочь в этом вопросе. С Сишкой...
C++ Разобраться в принципе работы задачч. (Работа с динамической памятью через указатели. ) Вот условие задачи: Создать массив из N целых чисел, N вводит пользователь. Заполнить массив случайным образом в диапазоне от 1 до 12. Каждое число это оценка по 12-ти бальной системе. Перевести эти... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9680 / 5630 / 954
Регистрация: 25.07.2009
Сообщений: 10,807
05.03.2012, 16:35
Цитата Сообщение от ivan732 Посмотреть сообщение
но за слова принимает и запятые ,и тд.
Не знаю, по каким правилам "запятые и тд" могут в предложении в отрыве от слов стоять, но если так хочется от них избавиться, просто поменяйте их на пробелы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <string>
#include <sstream>
 
size_t count_words(const std::string & str, const std::string & delim){
    std::string tmp(str);
    size_t i = 0;
    while ( ( i = tmp.find_first_of(delim, i) ) != std::string::npos )
        tmp[i] = ' ';
    std::istringstream ist(tmp);
    i = 0;
    while ( ist >> tmp )
        ++i;
    
    return i;
}
 
int main(){
    const std::string DELIM(",.?!:;\t\n"); // добавить по вкусу
    std::string str;
    
    while ( std::cout << "String: " && std::getline(std::cin, str) && ! str.empty() )
        std::cout << count_words(str, DELIM) << " words." << std::endl;
    
    return 0;
}
Цитата Сообщение от Rexer Посмотреть сообщение
Этот код считает количество символов,а не слов.
Да ну?! Слова разделённые пробелами он считает.

Добавлено через 2 минуты
Цитата Сообщение от ivan732 Посмотреть сообщение
Нужно использовать ассоциативный массив
Кстати, это тут к чему?
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru