Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 6
1

В пpоизвольном тексте найти и отпечатать все слова длиной 5 символов

06.11.2012, 21:44. Показов 3273. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Так получилось, что тема массивов в этом году была урезана, и поэтому я еле-еле нацарапываю код для циферных массивов. Помогите с задачей, пожалуйста.

Задача: В пpоизвольном тексте найти и отпечатать все слова длиной 5 символов.

Я смог только начать

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
#include <locale>
 
void main()
{
setlocale(LC_ALL, "Russian");
char text[1000], p;
int r=5, i;
 
i=0;
printf("Введите произвольный текст: ");
scanf("%с", &text);
 
while(text[i] != " ");
{
тело основного действия
}
 
printf("Количество слов из 5 букв:", p); //Вывод результатта
getch();
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2012, 21:44
Ответы с готовыми решениями:

В произвольном тексте найти и отпечатать все слова длиной 5 символов
Собственно, задача. Если можно, хотелось бы минимум мудрённого кода - простейшие операторы. Ну или...

Найти в тексте слова длиной n символов
Дан текст с разделенными пробелами между словами. Найти слова длины n(Завтра надо сдать) Текст:...

Строка: убрать пробелы и найти все палиндромы (длиной больше пяти символов) во всем тексте
В строку вводится текст(возможно с пробелами). Нужно чтобы программа, убрала пробелы и нашла все...

В тексте все слова заданной длины заменить указанной подстрокой, длина которой может не совпадать с длиной заменяемого слова
В процессе изучения C# столкнулась с одной задачей. Все бы ничего, но из-за требований к ее решению...

5
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
06.11.2012, 22:35 2
Необходимо протестировать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
int main(void)
{
 char* s = new char [1000];
 std::cin.getline(s,1000,'!'); // вводим пока не встретится знак "!", либо пока не введем 1000 символов
 char* t=strtok(s," ,.:;!?"); 
 do
 {
  if ((strlen(t)==6 && strstr(t,"\n"))||(strlen(t)==5 && !strstr(t,"\n")))
   std::cout<<t<<std::endl;
 }
 while (t=strtok(NULL," ,.:;!?"));  
 system("PAUSE");
 return 0;
}
Вводить можно все, что угодно (enter в том числе), пока не введем !, этот знак не учитывается при поиске.
0
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
06.11.2012, 23:04 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
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void split(vector<string>& dest, const string& str, const char* delim)
{
    char* pTempStr = strdup( str.c_str() );      
    char* pWord = strtok(pTempStr, delim);       
    while(pWord != NULL)
    {
        dest.push_back(pWord);
        pWord = strtok(NULL, delim);        
    }
    
    free(pTempStr); 
}
int main()
{
    string str="privet kak tvoie dela qwert? slonik poplp ololo";
    char* delim=" ";
    vector<string> v;
    split(v,str,delim);
    for(int i=0;i<v.size();i++)
    {
        if(v[i].size()==5) cout<<v[i]<<endl;
    }
    system("pause");
    return 0;
}
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,495
Записей в блоге: 1
07.11.2012, 05:39 4
Цитата Сообщение от BumerangSP Посмотреть сообщение
t=strtok(s," ,.:;!?");
*do
*{
* if ((strlen(t)==6
не сработает. t всё равно указывает на место в большой строке s и вызов strlen выдаст не длину слова, а длину всей строки s, начиная с этого места.
0
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 974
07.11.2012, 07:19 5
BumerangSP, память освобождать Пушкин будет?

Добавлено через 9 минут
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
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
#include <functional>
#include <sstream>
#include <cctype>
 
class word_length : public std::unary_function<std::string, bool>
{
    std::string::size_type len;
public:
    word_length(std::string::size_type length):
      len(length)
    {
    }
    bool operator () (const std::string& str)
    {
        return str.size() == len;
    }
};
 
class is_word_delimiter : public std::unary_function<char, bool>
{
public:
    bool operator () (char ch)
    {
        return isspace(ch) || ispunct(ch);
    }
};
 
int main()
{
    std::string str;
    std::cout << ">>>";
    std::getline(std::cin, str, '\n');
    std::replace_if(str.begin(), str.end(), is_word_delimiter(), ' ');
    std::istringstream stream(str);
    std::copy_if(
        std::istream_iterator<std::string>(stream),
        std::istream_iterator<std::string>(),
        std::ostream_iterator<std::string>(std::cout, " "),
        word_length(5));
    std::cout << std::endl;
}
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
07.11.2012, 16:21 6
Kuzia domovenok, в смысле, вообще не сработает? Или пример какой конкретный есть?
Пaтрик, придется, ибо память у меня (моя) не предусматривает
0
07.11.2012, 16:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2012, 16:21
Помогаю со студенческими работами здесь

Строка: Найти в исходном тексте все слова, которые состоят из трех символов...
Написать программу, которая из входного текста, находит слова которые состоят из трех символов....

Удалить из строчки S1 длиной до 40 символов все слова
Помогите пжл с решением задачи: Удалить из строчки S1 длиной до 40 символов все слова,...

Исправить 3адачу: дана строка длиной n символов, Вывести все слова, отличные от последнего слова, предварительно удалив из слов нечетной длины его сре
дана строка, между словами не менее одного пробела, в конце точка. Вывести все слова, отличные от...

Удалить из строки S1 длиной до 40 символов все слова, начинающиеся с цифры
Помогите решить пожалуйста! :) 1) Удалить из строки S1 длиной до 40 символов все слова,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru