Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для dickivs
48 / 48 / 11
Регистрация: 25.11.2011
Сообщений: 275

Создать массив строк, и вывести их, отметив те, которые являются палиндромами

07.10.2014, 08:11. Показов 1751. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, создающую массив из строк:
"Madam I'm Adam."
"Don't cry for me, Marge and Tina."
"Lid off daffodil."
"Red lost soldier."
"Cigar? Toss it in a can. It is so tragic."

Программа должна проверить каждую строку по очереди, вывести ее,
отметить является ли она полиндромом, знаки препинания игнорируются.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.10.2014, 08:11
Ответы с готовыми решениями:

Вывести строки массива строк, которые являются палиндромами
Помогоите решить чайнику 2 задачи по c++ . 2) Массив из M строк по N символов каждая. Необходимо вывести только те строки, которые...

Определить индексы тех строк массива, которые являются палиндромами
Дан символьный массив A, элементами которого являются строчный русские буквы. Определить индексы тех строк массива, которые являются...

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

6
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
07.10.2014, 08:16
****ivs, показывайте наработки.

Не по теме:

упражнения из учебников,желательно решать самостоятельно :)

0
 Аватар для dickivs
48 / 48 / 11
Регистрация: 25.11.2011
Сообщений: 275
08.10.2014, 13:28  [ТС]
Наработки следующие:
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
46
47
48
49
50
51
// 4_06_Ex.cpp : main project file.
// Программа создает массив строк, проверяет является ли 
// каждая строка полиндромом, игнорируя знаки препинания.
 
#include "stdafx.h"
#include<cstring>
 
using namespace System;
 
//bool isPolyndrome (String^ string);
 
int main(array<System::String ^> ^args)
{
    String^ str = {L"122"};
                            /*
                            L"Don't cry for me, Marge and Tina.",
                            L"Lid off a daffodil.",
                            L"Red lost soldier.",
                            L"Cigar? Toss it in a can. It is so tragic."};
                            */
    String^ str2;
 
    int first  = 0;
    int last = str->Length-1;
 
 
 
    for(int i = 0; i < str->Length; i++)
 
    {
        
        Console::Write(str[first]);
 
        str2 +=str[last];
 
        ++first;
        --last;
 
    }
 
 
    Console::WriteLine();
    Console::WriteLine(str2);
    Console::WriteLine();
        
    if(str2 == str)
        Console::WriteLine(L"Строка: {0} - полиндром.", str );
    else
        Console::WriteLine(L"Строка: {0} - не полиндром.", str );
    return 0;
}
У меня не получается в случае массива строк удалять символы пунктуации из исходной строки, хотя можно и игнорировать, также не могу написать код прохождения многомерного массива из строк.
C++
1
2
3
4
5
    array<String^>^ strgs = {L"Madam I'm adam",
                             L"Don't cry for me, Marge and Tina.",
                             L"Lid off a daffodil.",
                             L"Red lost soldier.",
                             L"Cigar? Toss it in a can. It is so tragic."};
Добавлено через 18 часов 7 минут
Не получается удалить знаки препинания в строках массива, и не могу скопировать исходный массив в обратном порядке.
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
// 4_06_Ex.cpp : main project file.
// Программа создает массив строк, проверяет является ли 
// каждая строка полиндромом, игнорируя знаки препинания.
 
#include "stdafx.h"
#include<cstring>
 
using namespace System;
 
//bool isPolyndrome (String^ string);
 
int main(array<System::String ^> ^args)
{
    array<String^>^ Str = { L"Madam I'm Adam",
                            L"Don't cry for me, Marge and Tina.",
                            L"Lid off a daffodil.",
                            L"Red lost soldier.",
                            L"Cigar? Toss it in a can. It is so tragic."};
                            
    array<String^>^ newStr = gcnew array<String^>(Str->Length);
 
 
    int i;
    int first = 0;
    int last;
    String^ nStr;
 
    for(i=0; i < Str->Length; i++)
    {
        last = Str[i]->Length;
 
        for( first = 0; first < (Str[i]->Length); first++ ){
            
            newStr[i][first] = Str[i][last];
        }
    }
    
    
    
    return 0;
}
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
09.10.2014, 00:52
Лучший ответ Сообщение было отмечено dickivs как решение

Решение

****ivs, предлагаю такой вариант:

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
46
int main()
{
    array <String^>^Str = { L"Madam I'm Adam.",
                            L"Don't cry for me, Marge and Tina.",
                            L"Lid off a daffodil.",
                            L"Red lost soldier.",
                            L"Cigar? Toss it in a can. It is so tragic.",
                            L"aaaabbbbccc"};
 
    for each (String^ var in Str)
        {
        int i=0,j=var->Length-1;
        while(i<j)
            {
 
            if(!Char::IsLetterOrDigit(var,i)) 
                {
                i++;
                }
            if(!Char::IsLetterOrDigit(var,j))
                {
                j--;
                }
            if(Char::ToUpper(var[i])!=Char::ToUpper(var[j])) break;
 
            else
                {
                i++;
                j--;
                }
            }
        if(i>=j)
            {
            Console::WriteLine(var);
            Console::WriteLine(" палиндром");
            }
        else
            {
            Console::WriteLine(var);
            Console::WriteLine("не палиндром");
            }
 
        }
    Console::ReadLine();
    return 0;
}
1
 Аватар для dickivs
48 / 48 / 11
Регистрация: 25.11.2011
Сообщений: 275
09.10.2014, 13:48  [ТС]
Я протестировал твой код, он помог мне решить задачу до конца, к сожелению в твоем коде он не очень корректно работает, в частности последняя строка кода является палиндромом, а программа выводит что это не полиндром, вот мой код законченная версия:
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
46
47
48
49
#include "stdafx.h"
 
using namespace System;
 
int main(array<System::String ^> ^args)
{
    
    array <String^>^Str = { L"Madam I'm Adam.",
                        L"Don't cry for me, Marge and Tina.",
                        L"Lid off a daffodil.",
                        L"Red lost soldier.",
                        L"Cigar? Toss it in a can. It is so tragic."};
    String^ s1;
    String^ s2;
 
    for each (String^ var in Str)
        {
        
        int j = var -> Length-1;
 
        for(int i = 0; i < j; i++ )
        {
            if(Char::IsLetter(var,i)){
                s1+=var[i];
                s1 = s1->ToUpper();
            }
        }
        
        for(j ; j >= 0; j--)
        {
            if(Char::IsLetter(var,j)){
                s2+=var[j];
                s2 = s2->ToUpper();
            }
        }
 
        if(s1 == s2)
            Console::Write(L"{0} - палиндром", var);
        else
            Console::Write(L"{0} - не палиндром", var);
 
        Console::WriteLine();
 
        s1 = (L"");
        s2 = (L"");
        }
 
    return 0;
}
1
 Аватар для worldown
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
09.10.2014, 15:48

Не по теме:

на сколько я понял это всё по "Айвор Хортон - Visual C++ 2010. Полный курс - 2011". А так, на то и задания что бы самому их решать => обучаться.. , тут можно качнуть ответы любое задание и урок по этому учебнику (официальный источник) http://www.wrox.com/WileyCDA/W... NLOAD.html



Добавлено через 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
// Soln4_6.cpp : main project file.
 
#include "stdafx.h"
 
using namespace System;
// This tests strings for being palindromes by extracting just the letters 
// from each string and assembling them into a new string as lowercase.
// Successive letters from either end of the new string are compared
// and if any pair does not match, the string is not a palindrome.
 
int main(array<System::String ^> ^args)
{
  array<String^>^ phrases = {L" Madam I'm Adam",
                             L" Don't cry for me, Marge and Tina",
                             L" Lid off a daffodil",
                             L" Red lost soldier",
                             L" Cigar? Toss it in a can. It is so tragic"};
  String^ letters;           // Stores handle to letters-only phrase
  bool isPalindrome;         // Indicates palindrome or not
  for each(String^ phrase in phrases)
  {
    // Extract letters and make lowercase
    letters = L"";
    for each(wchar_t ch in phrase)
      if(Char::IsLetter(ch))
        letters += Char::ToLower(ch);
 
   // Test for palindrome - compare characts from each end
   isPalindrome = true;
   for(int i = 0 ; i<letters->Length/2 ; i++)
      if(letters[i] != letters[letters->Length-i-1])
      {
        isPalindrome = false;
        break;
      }
    Console::WriteLine(L"\"" + phrase + L"\" " 
                 + (isPalindrome ? "is" : "is not") + L" a palindrome.");
  }
 
  return 0;
}
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
09.10.2014, 17:51
****ivs, спасибо за внимательность,действительно надо было инструкции continue в оба if-a поставить,тогда должно работать как надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.10.2014, 17:51
Помогаю со студенческими работами здесь

Определить индексы тех строк символьной матрицы, которые являются палиндромами
Дан символьный массив A элементами которого являются строчные русские буквы. Определить индексы тех строк массива, которые являются...

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

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

Дано три целых трехзначных числа. Вывести те из них, которые являются палиндромами в порядке их следования
Дано три целых трехзначных числа. Вывести те из них, которые являются палиндромами в порядке их следования. Полиндромом называется...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru