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

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by dickivs, 7 Oct 2014.

  1. dickivs

    dickivs New Member

    Joined:
    12 Nov 2011
    Messages:
    28
    Likes Received:
    1
    Reputations:
    0
    Написать программу, создающую массив из строк:
    "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."
    Программа должна проверить каждую строку по очереди, вывести ее,
    отметить является ли она полиндромом, знаки препинания игнорируются.
     
  2. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    ЯП какой?
     
  3. dickivs

    dickivs New Member

    Joined:
    12 Nov 2011
    Messages:
    28
    Likes Received:
    1
    Reputations:
    0
    C++/CLI
    Code:
    // Программа создает массив строк, проверяет является ли 
    // каждая строка полиндромом, игнорируя знаки препинания.
     
    #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;
    }
    У меня не получается в случае массива строк удалять символы пунктуации из исходной строки, хотя можно и игнорировать, также не могу написать код прохождения многомерного массива из строк.
    Code:
     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."};
    
     
  4. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    как-то так
    PHP:
    bool isPolyndrome (Stringstr)
    {
        
    Stringstr2;
        for(
    int i 0str->Length; ++i)
            if(
    str[i] >= 'a' && str[i] <= 'z')
                
    str2 += str[i];
            else if(
    str[i] >= 'A' && str[i] <= 'Z')
                
    str2 += (char)(str[i] - 'A' 'a');
                
        for(
    int i 0str2->Length 2; ++i)
            if(
    str2[i] != str2[str2->Length i])
                return 
    false;
        
        return 
    true;
    }
     
    #4 M_script, 9 Oct 2014
    Last edited: 9 Oct 2014