первый скрин - main.cpp, все последующие - Matrix.h.
1) Работает со всеми стандартными типами C++.
2) Получать результат умножения нужно в указатель класса Matrix такого же типа, что и множители.
3) Перемножать можно только объекты класса Matrix одного типа.
4) У класса Matrix есть метод Fill(), добавлен для удобства тестирования, он заполняет матрицу указанным значением (обязательно одного типа с заполняемым Matrix`ом (тоесть если у тебя матрица типа char, то вызов метода должен быть примерно таким: matrixname.Fill('A') )).
5) При перемножении Matrix`ы накладываются друг на друга, а пересекающиеся элементы перемножаются.
Объяснение:
1.
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include "string.h"
using namespace std;
int Transliterate(char* str, char* newStr){
setlocale(0, "rus");
for (; *str != 0; str++)
{
switch (str[0])
{
case 'а': strcat(&newStr[0], "a"); break;
case 'б': strcat(&newStr[0], "b"); break;
case 'в': strcat(&newStr[0], "v"); break;
case 'г': strcat(&newStr[0], "g"); break;
case 'д': strcat(&newStr[0], "d"); break;
case 'е': strcat(&newStr[0], "e"); break;
case 'ё': strcat(&newStr[0], "ye"); break;
case 'ж': strcat(&newStr[0], "zh"); break;
case 'з': strcat(&newStr[0], "z"); break;
case 'и': strcat(&newStr[0], "i"); break;
case 'й': strcat(&newStr[0], "y"); break;
case 'к': strcat(&newStr[0], "k"); break;
case 'л': strcat(&newStr[0], "l"); break;
case 'м': strcat(&newStr[0], "m"); break;
case 'н': strcat(&newStr[0], "n"); break;
case 'о': strcat(&newStr[0], "o"); break;
case 'п': strcat(&newStr[0], "p"); break;
case 'р': strcat(&newStr[0], "r"); break;
case 'с': strcat(&newStr[0], "s"); break;
case 'т': strcat(&newStr[0], "t"); break;
case 'у': strcat(&newStr[0], "u"); break;
case 'ф': strcat(&newStr[0], "f"); break;
case 'х': strcat(&newStr[0], "ch"); break;
case 'ц': strcat(&newStr[0], "z"); break;
case 'ч': strcat(&newStr[0], "ch"); break;
case 'ш': strcat(&newStr[0], "sh"); break;
case 'щ': strcat(&newStr[0], "ch"); break;
case 'ъ': strcat(&newStr[0], "''"); break;
case 'ы': strcat(&newStr[0], "y"); break;
case 'ь': strcat(&newStr[0], "''"); break;
case 'э': strcat(&newStr[0], "e"); break;
case 'ю': strcat(&newStr[0], "yu"); break;
case 'я': strcat(&newStr[0], "ya"); break;
case 'А': strcat(&newStr[0], "A"); break;
case 'Б': strcat(&newStr[0], "B"); break;
case 'В': strcat(&newStr[0], "V"); break;
case 'Г': strcat(&newStr[0], "G"); break;
case 'Д': strcat(&newStr[0], "D"); break;
case 'Е': strcat(&newStr[0], "E"); break;
case 'Ё': strcat(&newStr[0], "Ye"); break;
case 'Ж': strcat(&newStr[0], "Zh"); break;
case 'З': strcat(&newStr[0], "Z"); break;
case 'И': strcat(&newStr[0], "I"); break;
case 'Й': strcat(&newStr[0], "Y"); break;
case 'К': strcat(&newStr[0], "K"); break;
case 'Л': strcat(&newStr[0], "L"); break;
case 'М': strcat(&newStr[0], "M"); break;
case 'Н': strcat(&newStr[0], "N"); break;
case 'О': strcat(&newStr[0], "O"); break;
case 'П': strcat(&newStr[0], "P"); break;
case 'Р': strcat(&newStr[0], "R"); break;
case 'С': strcat(&newStr[0], "S"); break;
case 'Т': strcat(&newStr[0], "T"); break;
case 'У': strcat(&newStr[0], "U"); break;
case 'Ф': strcat(&newStr[0], "F"); break;
case 'Х': strcat(&newStr[0], "Ch"); break;
case 'Ц': strcat(&newStr[0], "Z"); break;
case 'Ч': strcat(&newStr[0], "Ch"); break;
case 'Ш': strcat(&newStr[0], "Sh"); break;
case 'Щ': strcat(&newStr[0], "Ch"); break;
case 'Ъ': strcat(&newStr[0], "''"); break;
case 'Ы': strcat(&newStr[0], "Y"); break;
case 'Ь': strcat(&newStr[0], "''"); break;
case 'Э': strcat(&newStr[0], "E"); break;
case 'Ю': strcat(&newStr[0], "Yu"); break;
case 'Я': strcat(&newStr[0], "Ya"); break;
default: { char Temp[2] = { str[0], 0} ; strcat(&newStr[0], &Temp[0]); }
}
}
}
int main()
{
char* x = "Я обожаю программировать на Турбо Паскале!";
char y[100] = {0};
Transliterate(x, &y[0]);
printf("%s\n", y);
return 0;
}
первый скрин - main.cpp, все последующие - Matrix.h.
1) Работает со всеми стандартными типами C++.
2) Получать результат умножения нужно в указатель класса Matrix такого же типа, что и множители.
3) Перемножать можно только объекты класса Matrix одного типа.
4) У класса Matrix есть метод Fill(), добавлен для удобства тестирования, он заполняет матрицу указанным значением (обязательно одного типа с заполняемым Matrix`ом (тоесть если у тебя матрица типа char, то вызов метода должен быть примерно таким: matrixname.Fill('A') )).
5) При перемножении Matrix`ы накладываются друг на друга, а пересекающиеся элементы перемножаются.