0 / 0 / 0
Регистрация: 29.11.2020
Сообщений: 11
1

Проверка на минимальную длину слова

24.12.2020, 03:31. Показов 1725. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как сделать проверку на длину слова, чтобы цикл работал только со словами, которые состоят более, чем из двух символов?
Занимаюсь программой, которая ищет в вводимой пользователем строке слова-палиндромы (шалаш, дед) и выводит их.

Добавлено через 51 секунду
Буду благодарен, если скинете свои варианты. На форуме искал, найденные мной варианты мне не подходят.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2020, 03:31
Ответы с готовыми решениями:

Распечатать слова, имеющие максимальную и минимальную длину
Строка содержит простое предложение, в котором слова отделяются символом «пробел». Распечатать...

Строка: Удалить все слова-палиндромы, имеющие минимальную длину среди всех слов.
Ввести строку символов (предусмотреть ввод пустой строки или строки из одних пробелов)....

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

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

9
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
24.12.2020, 03:36 2
почему решили игнорировать слова из одного и двух символов ?
0
0 / 0 / 0
Регистрация: 29.11.2020
Сообщений: 11
24.12.2020, 03:37  [ТС] 3
Yetty, поскольку такие слова не могут являться палиндромами. Моя программа выводит в результат союзы (и, в, а), а мне это не нравится. К сожалению, моей пустой головы не хватает, чтобы грамотно сделать такую простую задачу.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
24.12.2020, 03:42 4
Цитата Сообщение от zettaR Посмотреть сообщение
поскольку такие слова не могут являться палиндромами
? палиндром слово - которое читается одинаково слева направо и справа налево, например слово аа - палиндром, и - палиндром

подсказать как не проверять короткие слова не сложно, просто это совершенно не нужно
0
0 / 0 / 0
Регистрация: 29.11.2020
Сообщений: 11
24.12.2020, 03:44  [ТС] 5
Yetty, я был бы Вам очень признателен, если бы Вы отправили в тему свой вариант решения данной задачи. Вы пишите очень понятно для меня, я следил за ответами, которые Вы размещали в других темах.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
24.12.2020, 03:56 6
zettaR, проверка является ли слово палиндромом. ввод - латиница (русский добавляйте сами)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
using namespace std;
 
int main()
{     
    string word;
    cout << "Word:\n";
    cin >> word;
    size_t n=word.size(), i;
    
    for(i = 0; i < n/2; i++)    
        if(word[i]!=word[n-1-i]) {cout << "NO PALINDROME\n";break;}
        
    if(i==n/2) cout << "PALINDROME\n";    
    
system("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 29.11.2020
Сообщений: 11
24.12.2020, 04:14  [ТС] 7
Yetty, благодарю Вас.

Добавлено через 2 минуты
Yetty, только проблема в том, что у меня работа идёт именно с текстом из нескольких слов, а не с конкретным словом. И программа должна найти слова-палиндромы в тексте и вывести их.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
24.12.2020, 04:44 8
zettaR, я почему-то решил, что Вам слово нужно проверить. со строкой так: с помощью строкового потока забирайте слова из строки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <sstream> 
using namespace std;
 
int main()
{    
    string str, word;
    cout << "String:\n";
    getline(cin, str);
    
    stringstream words(str);
    while (words >> word)
    {
        cout << word << "\n";        
    }
   
system("pause");
return 0;
}
и проверяйте. можете проверку организовать в функции. если не будет получаться, пишите.

Добавлено через 5 минут
функция:
C++
1
2
3
4
5
6
7
bool IsPalindrome(string const&s)
{
    size_t n=s.size();
    for(size_t i=0; i<n/2; i++)    
        if(s[i]!=s[n-1-i]) return false;    
    return true;
}
0
0 / 0 / 0
Регистрация: 29.11.2020
Сообщений: 11
24.12.2020, 04:58  [ТС] 9
Yetty, пытаюсь использовать Вашу проверку на одно слово, как проверку для каждого слова строки. Ничего не происходит, работа программы просто завершается. Ну или я что-то делаю не так, что многовероятно.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
24.12.2020, 05:40 10
zettaR, мне казалось добавить готовую функцию Вам будет не сложно
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>
#include <string>
#include <sstream> 
using namespace std;
 
bool IsPalindrome(string const&s)
{
    size_t n=s.size();
    for(size_t i=0; i<n/2; i++)    
        if(s[i]!=s[n-1-i]) return false;    
    return true;
}
 
int main()
{    
    string str, word;
    cout << "String:\n";
    getline(cin, str);
    
    stringstream words(str);
    while (words >> word)
    {
        if (IsPalindrome(word)) cout << word << "\n";        
    }
   
system("pause");
return 0;
}
0
24.12.2020, 05:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2020, 05:40
Помогаю со студенческими работами здесь

Напечатать те слова, которые имеют не минимальную длину
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 10 символов; между...

Вставить пробел перед последними 2-мя символами в слова, имеющего минимальную (заданную) длину
Люди, добрые! Помогите пожалуйста решить задачу Вот и сама задача Вставить пробел перед...

Вставить пробел перед последними 2-мя символами в слова, имеющие минимальную (заданную) длину
Помогите пожалуйста решить задачу Вставить пробел перед последними 2-мя символами в слова,...

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

Проверка, все ли слова в строке имеют чередующуюся четную и нечетную длину
Нужно разработать функцию, выполняющую заданную ниже операцию над данными типа char. Проверка,...

Найти минимальную длину
Дан массив. Расстояние между элементами равно а. Вводятся номера элементов и их нужно соединить с...


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

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

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