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

Массив символов (Подсчитать количество слов в строке, при условии, что в качестве разделителя слов используется один или несколько пробелов) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтение/анализ строки текста http://www.cyberforum.ru/cpp-beginners/thread788958.html
Уважаемые господа, помогите советом. Нужно строку текста (из четного кол-ва символов) разбить в на фрагменты по два символа (задать программу для чтения строки). Как реализовать подобное? Комментариями сопровожу по необходимости, заранее спасибо)
C++ Работа с памятью Задали программу написать которая удаляет слова с одинаковым количеством гласных и согласных букв. Слова вводятся через пробел, около 4 штук, а потом выводятся оставшиеся. Проблема в том, что иногда происходит сбой в работе с памятью. Иногда программа работает нормально. Можете подсказать, где ошибка? #include "stdafx.h" #include <iostream> #include <conio.h> #include <stdio.h> #include... http://www.cyberforum.ru/cpp-beginners/thread788955.html
C++ Дописать программу (Заданы два человека – p и q. Ответить, являются ли они родственниками)
Доброго времени суток! Заданы два человека – p и q. Ответить, являются ли они родственниками. (В программе должны быть заданы два массива натуральных чисел mother и father, такие, что mother – номер матери i-го человека, а father – номер его отца, для каждого i, удовлетворяющего неравенствам 0<= i <=n-1.) Прога в рабочем состоянии, но ее необходимо дополнить (или/и исправить), чтобы она...
C++ Генерирование случайных чисел и выборка значения из этих чисел
Здравствуйте, помогите решить задачку. Нужно случайным образом сгенерировать числа от 0..9, 100 раз. Затем из генерированных чисел пользователь должен выбрать число, и в программе должен быть пересчет, сколько раз встретилось это число из 100 раз. Затем мы должны занести данные каждого числа от 0..9 (сколько раз оно встретилось) в массив... Спасибо.... Начало моего задания...... int...
C++ Программа, определяющая для заданного целочисленного объекта определить количество ведущих единиц старшего его байта http://www.cyberforum.ru/cpp-beginners/thread788934.html
Здравствуйте, помогите, пожалуйста, выполнить задачу. Нужна программа, позволяющая для заданного целочисленного объекта (int) определить количество ведущих единиц младшего его байта. И, если кто сможет, вторую: Определить указатель на константный указатель на целочисленный объект и указать возможные способы доступа к этому объекту. Заранее благодарю.
C++ Вычислить значение выражения #include <stdio.h> #include <conio.h> #include <math.h> int main() { printf("\nLaboratornaya rabota # 1"); printf("\nVariant # 5"); printf("\nIS-11-2"); printf("\nVasya Pupkin\n"); подробнее

Показать сообщение отдельно
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
25.03.2013, 12:59     Массив символов (Подсчитать количество слов в строке, при условии, что в качестве разделителя слов используется один или несколько пробелов)
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
27
28
#include <iostream>
#include <string>
 
int getNumofWords(const std::string& s) {
    typedef std::string::size_type str_size;
    str_size i = 0;      // устанавливаем индекс на 0
    int count = 0;   // счётчик слов
    while (i != s.size()) {   // и пробегаемся по строке до конца
        while (isspace(s[i]) && i != s.size())   // пока элемент строки пробел идём дальше
            ++i;
        str_size j = i;    // дошли до первого не пробела, т.е. i - индекс первой буквы слова
        while (!isspace(s[j]) && j != s.size()) // теперь пока элемент строки НЕ пробел идём дальше
            ++j;          // а j - индекс элемента, следующего за последней буквой
        if (i != j) {  // и если эти индексы не равны, то значит мы нашли слово, увеличиваем счётчик
            ++count;
            i = j;          // и приравниваем индекс i к j 
        }
    }
    return count; // возвращаем количество слов
}
int main()
{
    std::string str;
    std::getline(std::cin, str);    
    std::cout << getNumofWords(str);
    system("PAUSE");
    return 0;
}
P.S. а почему вы так запоздало реагируете? Медленный интернет?
 
Текущее время: 13:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru