Написать программу, создающую массив из строк: "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." Программа должна проверить каждую строку по очереди, вывести ее, отметить является ли она полиндромом, знаки препинания игнорируются.
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."};
как-то так PHP: bool isPolyndrome (String^ str) { String^ str2; for(int i = 0; i < str->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 = 0; i < str2->Length / 2; ++i) if(str2[i] != str2[str2->Length - 1 - i]) return false; return true; }