Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.10.2016
Сообщений: 20
1

Найти слова заканчивающиеся и начинающиеся на одну букву

07.12.2016, 16:24. Просмотров 1097. Ответов 2
Метки нет (Все метки)

Ребят, помогите облегчить код: "В строке найти слова, начинающиеся и заканчивающиеся одной буквой"
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
#include <iostream>
#include <stdio.h>
#include <string>
#include <stdlib.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char str[100], **words, *p;
    size_t i, cnt;
 
    cout<<"Введите строку ";
    cin.getline(str,100);
 
    words = NULL;
    cnt = 0;
    for ( p = strtok(str," "); p != NULL; p = strtok(NULL, " ") )
    {
        if ( ( words = (char**)realloc(words, sizeof(char*) * (cnt + 1)) ) == NULL )
            exit(1);
        if ( ( words[cnt++] = strdup(p) ) == NULL )
            exit(1);
    }
 
    cout<<"Слова удовлетворяющие условию: "<<endl;
    for ( i = 0; i < cnt; ++i )
    {
        p = words[i];
        if ( *p == *(p + strlen(p) - 1) )
            cout<<p<<endl;
    }
    system("pause");
    return 0;
}
Переделать бы эту часть в нечто более легкое
C++
1
2
3
4
5
6
7
8
9
 words = NULL;
    cnt = 0;
    for ( p = strtok(str," "); p != NULL; p = strtok(NULL, " ") )
    {
        if ( ( words = (char**)realloc(words, sizeof(char*) * (cnt + 1)) ) == NULL )
            exit(1);
        if ( ( words[cnt++] = strdup(p) ) == NULL )
            exit(1);
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2016, 16:24
Ответы с готовыми решениями:

В заданном массиве найти все слова, начинающиеся и заканчивающиеся на одну и ту же букву
Дан массив символов, в нём нужно найти все слова которые начинаются и заканчиваются на одну и ту...

Найти и вывести все слова начинающиеся и заканчивающиеся на одну и ту же букву (комментирование кода)
Прокомментируйте пожалуйста код: /* Ввести строку длинной до 500 символов.Алфавит русские буквы и...

Слова, начинающиеся и заканчивающиеся на одну и ту же букву
Дано предложение.Вывести на экран: а)слова,начинающиеся и заканчивающиеся на одну и ту же букву;...

Вывести слова, начинающиеся и заканчивающиеся на одну и ту же букву
Добрый день! Нужно чтобы из вводимой строки выводились слова,начинающиеся и заканчивающиеся на одну...

2
Эксперт С++
1583 / 913 / 777
Регистрация: 06.02.2016
Сообщений: 2,394
Записей в блоге: 28
07.12.2016, 17:33 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <string>
#include<iostream>
#include <vector>
#include <algorithm>
#include <sstream>
#include <iterator>
using namespace std;
int main() {
    string s,s1;
    getline(cin,s);
    stringstream ss(s);
    copy_if(istream_iterator<string>(ss),istream_iterator<string>(),ostream_iterator<string>(cout," "),[](const string &s) {
        size_t f=s.find_first_of(",.!?:");
        string s1=s;
        if(f!=string::npos) {
            s1=s.substr(0,s.length()-1);
        }
            return s1.length()>1 && s1.front()==s1.back();
    });
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 16.10.2016
Сообщений: 20
08.12.2016, 16:14  [ТС] 3
Цитата Сообщение от Peoples Посмотреть сообщение
#include <string>
#include<iostream>
#include <vector>
#include <algorithm>
#include <sstream>
#include <iterator>
using namespace std;
int main() {
* * string s,s1;
* * getline(cin,s);
* * stringstream ss(s);
* * copy_if(istream_iterator<string>(ss),istream_iterator<string >(),ostream_iterator<string>(cout," "),[](const string &s) {
* * * * size_t f=s.find_first_of(",.!?:");
* * * * string s1=s;
* * * * if(f!=string::npos) {
* * * * * * s1=s.substr(0,s.length()-1);
* * * * }
* * * * * * return s1.length()>1 && s1.front()==s1.back();
* * });
return 0;
}
Ничоси вы мне "облегчили"
можно написать не кратко, а на начинающем уровне?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2016, 16:14

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

В строке удалить все слова, начинающиеся и заканчивающиеся на одну и ту же букву
В символьной строке удалить все слова, начинающиеся и заканчивающиеся на одну и ту же букву.

Найти слова, начинающиеся и оканчивающиеся на одну и ту же букву; слова, содержащие букву, встречающуюся N раз
Пусть задано множество строк. Вывести: а) слова, начинающиеся и оканчивающиеся на одну и ту же...

Удалить из файла все фразы, заканчивающиеся и начинающиеся на одну и ту же букву
Дан файл, содержащий некоторый текст. Удалить из файла все фразы, заканчивающиеся и начинающиеся на...

Напечатать все слова, начинающиеся на большую и заканчивающиеся на маленькую букву
Напечатать все слова, начинающиеся на большую и заканчивающиеся на меленькую букву.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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