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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Тельман
0 / 0 / 0
Регистрация: 18.10.2013
Сообщений: 34
#1

программу, которая вычисляет количество слов в строке - C++

12.12.2013, 16:51. Просмотров 709. Ответов 8
Метки нет (Все метки)

Здравствуйте все! Опять тупик.
Напишите, пожалуйста, программу, которая вычисляет количество слов в строке.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2013, 16:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос программу, которая вычисляет количество слов в строке (C++):

Напишите программу, которая подсчитывает количество слов в строке - C++
Напишите программу, которая подсчитывает количество слов в строке.*

Как написать программу, которая посчитает количество слов в строке? - C++
Помогите пожалуйста.(:

Написать программу, которая вычисляет количество четных отрицательных элементов массива - C++
"Написать программу, которая вычисляет количество четных отрицательных элементов массива. Двумерный массив целых чисел." Пожалуйста,...

Составить программу, которая, по данным N и K, вычисляет количество способов группировки K предметов из N - C++
1. Составить программу, которая, по данным N и K, вычисляет количество способов группировки K предметов из N, выражающееся формулой C(n,k)...

Написать программу, которая вычисляет количество цифр во введенном пользователем числе - C++
Ваще не как... надо самы простой способ

Написать функцию, которая возвращает количество слов в строке - C++
Задание Написать функцию, которая возвращает количество слов в строке(могут быть пробелы знаки препинаия). Заголовок ф-и: int wordCount...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lpvoid
322 / 305 / 17
Регистрация: 06.03.2013
Сообщений: 869
12.12.2013, 17:21 #2
с костылем:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main() {
    std::string str;
    int word_count = 1, cur = 0;
 
    std::getline(std::cin, str);
 
    while (cur < str.length()) {
        if (str.at(cur++) == ' ')
            word_count++;
    }
 
    std::cout << "Word count: " << word_count << std::endl;
 
    _getch();
}
по-человечески (с++11 required):
C++
1
2
3
4
5
6
int word_count(std::string str) {
    std::regex word("\\w+");
    auto begin = std::sregex_iterator(str.begin(), str.end(), word);
    auto end = std::sregex_iterator();
    return std::distance(begin, end);
}
1
Тельман
0 / 0 / 0
Регистрация: 18.10.2013
Сообщений: 34
12.12.2013, 18:25  [ТС] #3
Проверил, задача не работает почему-то. жаль...........
0
Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
12.12.2013, 18:34 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main()
{
 char str[ 100 ];
 cin >> str;
 int c = 0;
 
 for( int i = 0; i < strlen( str ) - 1; i++ )
 if( str[ i ] == ' ' && str[ i + 1 ] != ' ' )c++;
 
 c++;
 cout << c << endl;
 
 return system( "pause" );
}
хотя и это не идеальное и полностью правильное решение.
1
petyahohlov
27 / 22 / 5
Регистрация: 31.07.2013
Сообщений: 121
12.12.2013, 18:37 #5
если слова отделены пробелами то
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream.h>
#include<string.h>
#include <stdio.h>
int main()
{
    char st[100]="11111 0000 1111 00000 11111";
    char *wrd;
    int k=0;
    int n=strlen(st);
    char st2[]=" ";
    wrd=strtok(st,st2);
    while(wrd!=NULL)
    {
        k++;
        wrd=strtok(NULL,st2);
    }
    cout<<k<<endl;
    return 0;
}
1
Тельман
0 / 0 / 0
Регистрация: 18.10.2013
Сообщений: 34
12.12.2013, 18:41  [ТС] #6
Спасибо! Сейчас проверю
0
Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
12.12.2013, 21:05 #7
Цитата Сообщение от petyahohlov Посмотреть сообщение
если слова отделены пробелами то
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream.h>
#include<string.h>
#include <stdio.h>
int main()
{
    char st[100]="11111 0000 1111 00000 11111";
    char *wrd;
    int k=0;
    int n=strlen(st);
    char st2[]=" ";
    wrd=strtok(st,st2);
    while(wrd!=NULL)
    {
        k++;
        wrd=strtok(NULL,st2);
    }
    cout<<k<<endl;
    return 0;
}
напомните пожалуста что делает ф-ия стрток?
1
petyahohlov
27 / 22 / 5
Регистрация: 31.07.2013
Сообщений: 121
12.12.2013, 21:11 #8
возращает указатель на лексемы в строке ст разделённые любым из символов ст2
вроде так
я сам толком не знаю, но знаю как пользоваться
1
ElenaBilyk
4 / 4 / 1
Регистрация: 22.10.2013
Сообщений: 34
12.12.2013, 21:16 #9
C++
1
wrd=strtok(st,st2);
в strtok вторым параметром можно кидать константную строку, то есть
wrd = strtok(st, " ,.!?");
она будет искать эти разделители и возвращать вам слово.

Добавлено через 1 минуту
А если точнее, то функция возвращает указатель на начало слова, следующего за разделителем.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2013, 21:16
Привет! Вот еще темы с ответами:

Составить программу, которая вычисляет количество элементов одномерного массива Х, состоящего из 15 вещественных чисел, которые равняются по значению - C++
Составить программу, которая вычисляет количество элементов одномерного массива Х, состоящего из 15 вещественных чисел, которые равняются...

Написать программу на языке С, которая рекурсивно вычисляет количество единиц в двоичном коде заданного пользователем натурального числа - C++
помогите плиз Добавлено через 12 минут Операция n := n &amp; (n - 1) уничтожает крайнюю справа единицу в бинарном представлении числа n....

Подправьте задачу. (Определить количество слов в строке, которая содержит введенный символ) - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; using namespace std; int _tmain(int argc,...

Составить программу, которая подсчитывает количество слов - C++
Пожалуйста помогите! C клавиатуры вводится строка. Составить программу, которая подсчитывает количество слов, которые имеют нечетное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.12.2013, 21:16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru