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

Дана строка текста, в которой слова разделены пробелами. - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Grex
1 / 1 / 0
Регистрация: 03.12.2008
Сообщений: 55
19.11.2009, 14:21     Дана строка текста, в которой слова разделены пробелами. #1
Доброго времени суток !
Дана лаба:

Дана строка текста, в которой слова разделены пробелами. Необходимо:
- определить количество слов в строке;
- вывести все слова строки в порядке возрастания их длин;
- вывести все слова, начинающиеся на букву «t».

п.с. первые 2 пункта сделал, а 3-й все никак не могу реализовать, если кто-то сможет помочь буду очень признателен !

Код:
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
#include <vcl.h>
#pragma hdrstop
#include <tchar.h>
#include <iostream.h>
#include <vector>
#include <string>
#include <conio.h>
#include <stdio.h>
#include <iterator>
#include <algorithm>
#pragma argsused
bool compare(const std::string &a, const std::string &b)
{
return a.length()<b.length();
}
int main()
{
cout<<"vedite stroky: ";
size_t kol = 0;
std::string s;
std::vector<std::string>a;
while (std::cin>>s && s!="sort")
{
a.push_back(s);
kol++;
}
std::cout<<endl<<"koli4estvo slov: "<<' '<<kol<<std::endl;
std::sort(a.begin(),a.end(),compare);
copy(a.begin(),a.end(),std::ostream_iterator<std::string>(std::cout<<"Sortirovka:       "," "));
getch ();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2009, 14:21     Дана строка текста, в которой слова разделены пробелами.
Посмотрите здесь:

C++ Строка, слова в которой разделены пробелами
Поменять местами первые слова (слова разделены пробелами) заданных строк, без использования процедур C++
Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются C++
Дана строка, слова в которой разделены пробелами. Оставьте в ней только те слова, которые начинаются на ту же букву, что и первое слово. C++
C++ Дана строка текста, в которой слова разделены символами "#" и пробелами
Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются C++
Вывести на экран предпоследнее и последнее слово (слова разделены пробелами) C++
Дана строка, содержащая разделенные пробелами слова, вывести все слова-палиндромы C++
C++ Дана строка, в которой слова разделены одним пробелом. Найдите и выведите все слова указанной длины
C++ Дана строка до точки, группа символов в которой между пробелами считается словом
Дана строка текста, в которой слова разделены пробелами и запятыми, вывести повторяющиеся слова C++
В тексте все слова разделены пробелами и знаками препинания C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1919 / 1528 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
19.11.2009, 15:27     Дана строка текста, в которой слова разделены пробелами. #2
C++
1
2
for(std::vector<std::string>::iterator iter = vec.begin(); iter!= vec.end(); ++iter)
        if((*iter)[0] == toupper('t')) std::cout << *iter << ' ';
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
19.11.2009, 15:27     Дана строка текста, в которой слова разделены пробелами. #3
Grex,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
    std::vector<std::string>a(5);
    for (size_t i = 0 ; i < a.size() ; i++)
        std::cin>>a[i];
    for (size_t i = 0 ; i < a.size() ; i++)
        if (*(a[i].begin()) == 't' ) std::cout<<a[i]<<' ';
    return 0;
}
немного не в стиле С++ но чтобы было понятно
timuragmk
2 / 2 / 0
Регистрация: 19.11.2009
Сообщений: 6
19.11.2009, 15:33     Дана строка текста, в которой слова разделены пробелами. #4
Привет. Я начинающий сишник. Если код кривой, прошу не винить.

1. думаю, вместо счетчика kol можно использовать a.size();
2. для вывода слов, начинающихся с символа 't', использовать следующее:

C++
1
2
3
4
5
std::for_each(a.begin(), a.end(), printStr);
 
void printStr(std::string m){
    if (m.c_str()[0] == 't') cout << m.c_str() << endl;
}
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
19.11.2009, 15:43     Дана строка текста, в которой слова разделены пробелами. #5
Цитата Сообщение от timuragmk Посмотреть сообщение
1. думаю, вместо счетчика kol можно использовать a.size();

Цитата Сообщение от timuragmk Посмотреть сообщение
2. для вывода слов, начинающихся с символа 't', использовать следующее:
C++
1
2
3
4
std::for_each(a.begin(), a.end(), printStr);
void printStr(std::string m){
if (m.c_str()[0] == 't') cout << m.c_str() << endl;
}
C++
1
2
3
4
std::for_each(a.begin(), a.end(), printStr);
void printStr(const std::string &m){
    if (m[0] == 't')  std::cout << m << std::endl;
}
Grex
1 / 1 / 0
Регистрация: 03.12.2008
Сообщений: 55
20.11.2009, 06:49  [ТС]     Дана строка текста, в которой слова разделены пробелами. #6
Огромное спасибо тем кто ответил, прога работает !

proggers respect !
Yandex
Объявления
20.11.2009, 06:49     Дана строка текста, в которой слова разделены пробелами.
Ответ Создать тему
Опции темы

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