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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.68
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
#1

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

22.10.2012, 15:20. Просмотров 2923. Ответов 14
Метки нет (Все метки)

1_Символьная строка заканчивается восклицательным знаком (!). Слова в ней отделены друг от друга точкой с запятой (. Найти те слова, которые начинаются и заканчиваются одной и той же буквой.
2_. Заданный текст распечатать по строкам, понимая под строкой либо очередные 60 литер, если среди них нет запятой, либо часть текста до запятой включительно.
3_ Дана последовательность слов. Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству: буквы слова упорядочены по алфавиту.

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

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

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

Найти слова, которые начинаются и заканчиваются одной и той же буквой (перевести из Паскаля в С++) - C++
uses crt; var s,sl,sn: string; a: array of string; i,k: integer; begin write('s='); ...

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

Дана строка. Найти в ней те слова, которые начинаются и заканчиваются одной и той же буквой - C++
#include <stdio.h> #include <string.h> int main() { char str = "Сегодня состоялось мероприятие, было весело, особенно...

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

14
Vourhey
Почетный модератор
6482 / 2256 / 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));
1
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
22.10.2012, 15:59  [ТС] #3
Спасибо, только мне бы что-нибудь попроще , если можно))
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 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
1
Csacsa
1 / 1 / 0
Регистрация: 24.09.2012
Сообщений: 40
22.10.2012, 16:03  [ТС] #5
ПРОШЛИ только циклы и двумерные массивы))
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.10.2012, 16:05 #6
Цитата Сообщение от Csacsa Посмотреть сообщение
ПРОШЛИ только циклы и двумерные массивы))

Не по теме:

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

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

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

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

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

ага, пойду мучить себя и комп)
0
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
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;
}
1
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 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
1
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
22.10.2012, 18:23 #14
Цитата Сообщение от ForEveR Посмотреть сообщение
Циклами как-то неинтересно. string намного проще, но все же функции cstring никто не отменял
Я думал нельзя пользоваться стандартными функциями.
0
dmibodoonij
0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 4
04.12.2014, 18:03 #15
David Sylva, А ты не мог бы написать мне 2ую задачу в паскале? если конечно знаешь его
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2014, 18:03
Привет! Вот еще темы с ответами:

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

Определить количество слов, которые начинаются и заканчиваются одной и той же буквой - C++
Дана строка, состоящая из слов, разделенных пробелом. Определить количество слов, которые начинаются и заканчиваются одной и той же буквой....

Найти в строке те слова, которые начинаются и оканчиваются одной и той же буквой. - C++
Есть на паскале код uses crt; var s,s1:string; n,i,k,f:byte; begin clrscr; writeln('Введите последовательность слов,...

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


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

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

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