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

Найти те слова, которые начинаются и заканчиваются одной и той же буквой - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.68
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
22.10.2012, 15:20     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #1
1_Символьная строка заканчивается восклицательным знаком (!). Слова в ней отделены друг от друга точкой с запятой (. Найти те слова, которые начинаются и заканчиваются одной и той же буквой.
2_. Заданный текст распечатать по строкам, понимая под строкой либо очередные 60 литер, если среди них нет запятой, либо часть текста до запятой включительно.
3_ Дана последовательность слов. Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству: буквы слова упорядочены по алфавиту.

Заранее огромное спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2012, 15:20     Найти те слова, которые начинаются и заканчиваются одной и той же буквой
Посмотрите здесь:

C++ Найти в тексте слова, которые начинаются и заканчиваются одной и той же буквой
C++ Найти в строке те слова, которые начинаются и оканчиваются одной и той же буквой
Найти в строке те слова, которые начинаются и оканчиваются одной и той же буквой. C++
C++ Найти количество слов, которые начинаются и заканчиваются одной и той же буквой
Строки. Найти все слова, которые начинаются и заканчиваются одной и той же буквой. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6469 / 2244 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.10.2012, 15:52     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #2
1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void check_word(std::wstring word)
{
    if(word.front() == word.back())
        std::wcout<<word<<std::endl;
}
 
int main (void)
{ 
    std::wstring a(L"laskjd;asjkl;jasj;ab;tereraft;bba;wqwyqws!");
    int start=-1, saved_start=0;
    while((start = a.find(';', start+1)) != std::wstring::npos)
    {
        check_word(a.substr(saved_start, start - saved_start));
        saved_start = start+1;
    }
    check_word(a.substr(saved_start, a.length()-1 - saved_start));
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
22.10.2012, 15:59  [ТС]     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #3
Спасибо, только мне бы что-нибудь попроще , если можно))
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
22.10.2012, 15:59     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #4
1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <vector>
#include <string>
#include <iostream>
 
#include <boost/algorithm/string.hpp>
#include <boost/range/adaptor/filtered.hpp>
#include <boost/range/algorithm/copy.hpp>
 
int main()
{
   std::string s = "hello;olo;this;isi!";
   s.erase(s.size() - 1);
   std::vector<std::string> v;
   boost::split(v, s, [](const char c) { return c == ';'; }, boost::token_compress_on);
   boost::copy(v | boost::adaptors::filtered([](const std::string& s)
   {
      return *s.begin() == *s.rbegin();
   }), std::ostream_iterator<std::string>(std::cout, "\n"));  
}
http://liveworkspace.org/code/b5b97b...8c50586908f1a9

3.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <vector>
#include <string>
#include <iostream>
 
#include <boost/algorithm/string.hpp>
#include <boost/range/adaptor/filtered.hpp>
#include <boost/range/algorithm/copy.hpp>
 
int main()
{
   std::string s = "hello want do you abc want";
   std::vector<std::string> v;
   boost::split(v, s, [](const char c) { return c == ' '; }, boost::token_compress_on);
   const std::string& last = v.back();
   boost::copy(v | boost::adaptors::filtered([last](const std::string& s)
   {
      return s != last && std::is_sorted(s.begin(), s.end());
   }), std::ostream_iterator<std::string>(std::cout, "\n"));  
}
http://liveworkspace.org/code/45afba...1ffb0a6c01b802
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
22.10.2012, 16:03  [ТС]     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #5
ПРОШЛИ только циклы и двумерные массивы))
Vourhey
Почетный модератор
6469 / 2244 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.10.2012, 16:05     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #6
Цитата Сообщение от Csacsa Посмотреть сообщение
ПРОШЛИ только циклы и двумерные массивы))

Не по теме:

Поздно написал уже. Поздно раньше думать надо было.

Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
22.10.2012, 16:10  [ТС]     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #7
Может кто-нибудь поможет, составить код, ну прям совсем совсем для новичка в программировании
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
22.10.2012, 16:14     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #8
Csacsa, Алгоритм подсказать могу, ибо писать мне лень.
1) Парсим строку. Бежим в цикле по получившемуся массиву - сравниваем str[0] с str[strlen(str) - 1], если равны то это одно из нужных слов.
3) Парсим строку. Находим последнее слово. Бежим в цикле, для каждого сравниваем на равенство (посредством strcmp) с последним, если не равно, проверяем отсортировано-ли в алфавитном порядке. Если оба условия выполнены - это одно из нужны слов.
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
22.10.2012, 16:20  [ТС]     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #9
Подожду.... может еще кто откликнется)
Vourhey
Почетный модератор
6469 / 2244 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.10.2012, 16:23     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #10
Csacsa,
2. идем циклом по строке до 60-го символа ища запятую. Если встретила запятая, выводим строку до запятой включительно, и идем искать в следующих 60 символах. Если запятая не встретилась, выводим 60 символов, и продолжаем искать запятую в следующих 60-ти.

Добавлено через 52 секунды
Цитата Сообщение от Csacsa Посмотреть сообщение
Подожду.... может еще кто откликнется)
Эмммм...а кто будет программировать учиться? Пробуй делать, а не ждать.
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
22.10.2012, 16:27  [ТС]     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #11
Цитата Сообщение от Vourhey Посмотреть сообщение
Csacsa,
2. идем циклом по строке до 60-го символа ища запятую. Если встретила запятая, выводим строку до запятой включительно, и идем искать в следующих 60 символах. Если запятая не встретилась, выводим 60 символов, и продолжаем искать запятую в следующих 60-ти.

Добавлено через 52 секунды

Эмммм...а кто будет программировать учиться? Пробуй делать, а не ждать.

ага, пойду мучить себя и комп)
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
22.10.2012, 17:25     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #12
1 Можно так сделать
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> 
 
int main() 
{ 
    char str[] = "eal;aahaa;dfggg;qwq!";
    unsigned i, j;  
    int count = -1;
 
    for ( i = 0; i < strlen(str); i++)  
    {   
        count++;
        if(str[i] == ';' || str[i] =='!') 
        {  
            
 
            if(str[i-count] == str[i-1]) 
            { 
                for ( j = i - count; j <= i - 1; j++) 
                    std::cout << str[j];  
                std::cout << std::endl;
            }  
            count = -1;
        }  
        
        
    }  
    
}
Добавлено через 11 минут
2)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream> 
 
int main() 
{ 
    char str[] = "sadasd, asdfghj asdftghjuytre asdfgthrtyu asdfghrtyuk asdfghjklerty asdfghjktyre asdfgh"; 
    unsigned i;  
    int count = 0;
 
    for ( i = 0; i < strlen(str); i++)  
    {   
        count++;
        std::cout << str[i]; 
        if(str[i] == ',' || count == 60) 
        { 
            std::cout << std::endl;  
            count = 0;
        }
    }   
    
    std::cout << std::endl;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
22.10.2012, 18:09     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #13
Циклами как-то неинтересно. string намного проще, но все же функции cstring никто не отменял

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstring>
 
int main()
{
   const char* p = "this;isi;now;aba!";
   const char* delim = ";";
   const size_t p_len = strlen(p);
   char* without_pling = new char[p_len + 1];
   strncpy(without_pling, p, p_len - 1);
   for (char* c = strtok(without_pling, delim); c; c = strtok(0, delim))
   {
      const size_t size = strlen(c);
      if (size && c[0] == c[size - 1])
      {
         std::cout << c << std::endl;
      }
   }
   delete[] without_pling;
}
http://liveworkspace.org/code/29f5c8...f603e8aa7d6592
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
22.10.2012, 18:23     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #14
Цитата Сообщение от ForEveR Посмотреть сообщение
Циклами как-то неинтересно. string намного проще, но все же функции cstring никто не отменял
Я думал нельзя пользоваться стандартными функциями.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2014, 18:03     Найти те слова, которые начинаются и заканчиваются одной и той же буквой
Еще ссылки по теме:

Определить количество слов, которые начинаются и заканчиваются одной той же буквой C++
C++ Найти слова, которые начинаются и заканчиваются одной и той же буквой (перевести из Паскаля в С++)
Найти в тексте слова, которые начинаются и заканчиваются одной и той же буквой C++

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

Или воспользуйтесь поиском по форуму:
dmibodoonij
0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 4
04.12.2014, 18:03     Найти те слова, которые начинаются и заканчиваются одной и той же буквой #15
David Sylva, А ты не мог бы написать мне 2ую задачу в паскале? если конечно знаешь его
Yandex
Объявления
04.12.2014, 18:03     Найти те слова, которые начинаются и заканчиваются одной и той же буквой
Ответ Создать тему
Опции темы

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