djneketos
Ученик
Так как прошлую тему закрыли, создаю новую...
Есть сток, который англ. буквы переводит в русские
Надо сделать чтобы он делал так же, но с "ch", "sh" и т.д. В прошлой теме дали такое решение проблемы:
Всё работает, но загвоздка в этом пробеле. Я прямо вообще не понимаю как его убрать. Пробовал что-то вроде:
Тут всё тоже нормально, но если начать предложение с буквы "б" - оно не переведётся.
P.S. Пробовал еще кучу разных вариантов, но все они сводились к такой же проблеме
Есть сток, который англ. буквы переводит в русские
PHP:
stock AntiTranslate(text[])
{
static str[150];
str[0] = EOS;
for(new i=0; i < sizeof(str); i++)
{
switch(text[i])
{
case 'a': str[i] = 'а';
case 'A': str[i] = 'А';
case 'b': str[i] = 'б';
case 'B': str[i] = 'Б';
case 'c': str[i] = 'ц';
case 'C': str[i] = 'Ц';
case 'd': str[i] = 'д';
case 'D': str[i] = 'Д';
case 'e': str[i] = 'е';
case 'E': str[i] = 'Е';
case 'f': str[i] = 'ф';
case 'F': str[i] = 'Ф';
case 'g': str[i] = 'г';
case 'G': str[i] = 'Г';
case 'h': str[i] = 'х';
case 'H': str[i] = 'Х';
case 'i': str[i] = 'и';
case 'I': str[i] = 'И';
case 'j': str[i] = 'ж';
case 'J': str[i] = 'Ж';
case 'k': str[i] = 'к';
case 'K': str[i] = 'К';
case 'l': str[i] = 'л';
case 'L': str[i] = 'Л';
case 'm': str[i] = 'м';
case 'M': str[i] = 'М';
case 'n': str[i] = 'н';
case 'N': str[i] = 'Н';
case 'o': str[i] = 'о';
case 'O': str[i] = 'О';
case 'p': str[i] = 'п';
case 'P': str[i] = 'П';
case 'q': str[i] = 'к';
case 'Q': str[i] = 'К';
case 'r': str[i] = 'р';
case 'R': str[i] = 'Р';
case 's': str[i] = 'с';
case 'S': str[i] = 'С';
case 't': str[i] = 'т';
case 'T': str[i] = 'Т';
case 'u': str[i] = 'у';
case 'U': str[i] = 'У';
case 'v': str[i] = 'в';
case 'V': str[i] = 'В';
case 'w': str[i] = 'в';
case 'W': str[i] = 'В';
case 'x': str[i] = 'х';
case 'X': str[i] = 'Х';
case 'y': str[i] = 'ы';
case 'Y': str[i] = 'Ы';
case 'z': str[i] = 'з';
case 'Z': str[i] = 'З';
default: str[i] = text[i];
}
}
return str;
}
PHP:
case 'h': if(str[i-1] == 'ц') str[i-1] = 'ч', str[i] = ' '; else str[i] = 'х';
PHP:
case 'b': if(str[i-2] == 'ч' && str[i-1] == ' ') str[i-1] = 'б', str[i] = ' '; else str[i] = 'б';
P.S. Пробовал еще кучу разных вариантов, но все они сводились к такой же проблеме
