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

Подсчитать количество символов в каждом слове заданной строки - C++

Восстановить пароль Регистрация
 
MakcoH1507
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 4
04.02.2016, 16:40     Подсчитать количество символов в каждом слове заданной строки #1
Ребят, помогите пожалуйста с заданием.
Дана строка. Подсчитать количество символов в каждом слове. Сформировать новую строку в которой слова располагаются в порядке возрастания их длин.
Пример:
Входная строка: "строка для анализа и осмотра"
Результат: 6,3,7,1,7
"и для строка анализа осмотра"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2016, 16:40     Подсчитать количество символов в каждом слове заданной строки
Посмотрите здесь:

Подсчитать количество символов в первом слове F2 C++
C++ Подсчитать количество гласных букв в каждом слове предложения
Количество разных символов в каждом слове C++
Задана строка. Подсчитать количество символов арифметических операций (*, +, -, /) в заданной строке и дополнить строку слово шифра группы C++
C++ Определить количество символов в кратчайшем слове строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ThePlague
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
04.02.2016, 17:04     Подсчитать количество символов в каждом слове заданной строки #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
MakcoH1507,
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
29
30
31
32
33
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
 
bool lessLength(const string& s1, const string& s2)
{
    return s1.length() < s2.length();
}
 
int main()
{
    string s = "stroka dlya analiza i osmotra ";
    string delimiter = " ";
    vector<string>res;
    size_t pos = 0;
    string token;
    cout << "entered string: " << s << endl;
    cout << "res: ";
    while((pos = s.find(delimiter))!=string::npos)
    {
        cout << pos << ", ";
        token = s.substr(0, pos);
        res.push_back(token);
        s.erase(0, pos + delimiter.length());
    }
    cout << endl;
    sort(res.begin(), res.end(),lessLength);
    for(unsigned int i=0;i<res.size();i++)
        cout << res[i] << " ";
    cout << endl;
}
MakcoH1507
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 4
05.02.2016, 05:06  [ТС]     Подсчитать количество символов в каждом слове заданной строки #3
ThePlague, Спасибо большое. А ещё не подскажите, как задать строку вручную, т.е. чтобы ввод осуществлялся в самой командной строке при выполнении программы?
Aneron
 Аватар для Aneron
157 / 156 / 12
Регистрация: 20.04.2010
Сообщений: 570
05.02.2016, 08:19     Подсчитать количество символов в каждом слове заданной строки #4
ThePlague, поправьте текст вывода. Где то транслитом, где то английскими буквами. Глаза режжжжет)))

MaksoH1507, поправьте main на
int main(into argc,char argv[]), где в скобочках аргументы командной строки.
1-ый кол-во аргументов
2-ый сами аргументы.
Самый первый аргумент ВСЕГДА это полный путь до ехе файла.
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1855 / 1651 / 575
Регистрация: 14.05.2014
Сообщений: 4,729
Записей в блоге: 1
Завершенные тесты: 5
05.02.2016, 08:24     Подсчитать количество символов в каждом слове заданной строки #5
Цитата Сообщение от Aneron Посмотреть сообщение
Где то транслитом, где то английскими буквами

Цитата Сообщение от Aneron Посмотреть сообщение
int main(into argc,char argv[]), где в скобочках аргументы командной строки.
1-ый кол-во аргументов
2-ый сами аргументы.
Самый первый аргумент ВСЕГДА это полный путь до ехе файла.
С какой целью? Стандартом прописаны два прототипа для main - без аргументов ( если они не используются в программе) и с аргументами.
Aneron
05.02.2016, 08:56
  #6

Не по теме:

Kerry_Jr, как я понял, товарисч жаждит получать строку переданную в качестве аргумента командной строки)

Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1855 / 1651 / 575
Регистрация: 14.05.2014
Сообщений: 4,729
Записей в блоге: 1
Завершенные тесты: 5
05.02.2016, 09:05     Подсчитать количество символов в каждом слове заданной строки #7
Цитата Сообщение от Aneron Посмотреть сообщение
товарисч жаждит получать строку переданную в качестве аргумента командной строки
И по каким признакам вы это поняли?
Aneron
05.02.2016, 09:22
  #8

Не по теме:

Kerry_Jr,как то узрел cin в примере ThePlague. Поэтому подумал, раз ему такой вариант не подходит, значит хочет получать все через аргументы командной строки.
Сейчас с компа смотрю,cin нет в примере. Каюсь, был не прав.

Kerry_Jr
05.02.2016, 09:27
  #9

Не по теме:

Aneron, то-то же!

ThePlague
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
05.02.2016, 11:03     Подсчитать количество символов в каждом слове заданной строки #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
MakcoH1507,
замени строку 14

C++
1
string s = "stroka dlya analiza i osmotra ";
на

C++
1
2
3
    string s;
    cout << "enter string: ";
    getline(cin,s);
PS: в конце строки пробел надо....иначе последнее слово не учитывается...алгоритм не идеален...лень искать причину...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2016, 02:01     Подсчитать количество символов в каждом слове заданной строки
Еще ссылки по теме:

Определить сколько различных символов в каждом слове C++
Подсчитать количество символов в последнем слове файла C++
Подсчитать количество символов в последнем слове в файле C++

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,865
Записей в блоге: 2
Завершенные тесты: 1
06.02.2016, 02:01     Подсчитать количество символов в каждом слове заданной строки #11
Цитата Сообщение от Aneron Посмотреть сообщение
Самый первый аргумент ВСЕГДА это полный путь до ехе файла.
не всегда. Там вообще может быть пустая строка.
Yandex
Объявления
06.02.2016, 02:01     Подсчитать количество символов в каждом слове заданной строки
Ответ Создать тему
Опции темы

Текущее время: 16:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru