Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366

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

12.08.2013, 12:19. Показов 1548. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, вот сама задача:
Напишите программу, которая кодирует фразы английского языка псевдолатынью. Псевдолатынь - это форма кодированного языка, часто используемая для развлечения. Существует много вариантов формирования фраз на псевдолатыни. Для простоты используйте следующий алгоритм:
Чтобы сформировать фразу на псевдолатыни из фразы на английском языке, разбейте фразу на слова с помощью функции strtok. Для перевода каждого английского слова на язык псевдолатыни поместите первую букву английского слова в конец английского слова и прибавьте буквы ау . Таким образом слово jump превратится в umpjay , слово the превратится в hetay , а слово computer превратится в omputercay . Пропуски между словами сохраняются. Примем следующие допущения: английская фраза состоит из слов, разделенных пропусками, пунктуация отсутствует, все слова состоят не менее чем из двух букв. Функция printLatin-Word должна отображать каждое слово. Подсказка: каждая найденная с помощью функции strtok лексема должна передавать указатель на лексему функцию printLatinWord, которая печатает слово на псевдолатыни.

Вот решение :
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
#include "iostream"
#include <string.h>
#include <time.h>
void printLatin(char*);
 
int main()
 
{
    srand(time(NULL));
    setlocale(LC_ALL,"Russian");
    char a[]="Im the best programmer";
    char *totalPtr;
    totalPtr=strtok(a," ");
    while (totalPtr!=NULL)
    {
        std::cout<<totalPtr<<" : ";
        printLatin(totalPtr);
        totalPtr=strtok(NULL," ");
    }
    
         
 
system("pause");
return 0;
}
 
void printLatin(char* total)
{
    char b[]="ay";
    char c [13]={0};
    
for(int x=1;total[x]!='\0';++x)
{
    c[x-1]=total[x];
}
strncat(c,total,1);
strcat(c,b);
total=c;
 
std::cout<<total<<"\n";
 
}
Что бы Вы тут поменяли?)))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.08.2013, 12:19
Ответы с готовыми решениями:

Напишите программу, которая выводит на экран значения переменных для каждого типа языка «C»
Задание: Изучите статью глоссария об операторе printf. Напишите программу, которая выводит на экран значения переменных для каждого...

Напишите программу, которая выводит все возможные слова "нового" языка
ребенок играл с карточками, на которых английские буквы. он составил слова &quot;нового&quot;языка. каждое слово содержало все имеющиеся у...

Написать маленькую программу для изучения английского языка
Гуру программного кода, нужно ваша помощь. Хочу написать небольшую программу для изучения английского языка, для дочки, урок и тест по...

8
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
12.08.2013, 12:59
C++
1
char c [13]={0};
А если слова будут длиннее?

C++
1
2
3
4
for(int x=1;total[x]!='\0';++x)
{
    c[x-1]=total[x];
}
Раз уж юзаете стандартные функции, то почему не strcpy?

Добавлено через 2 минуты
Если функция просто печатает, то зачем формировать новую строку:
C++
1
2
3
4
void printLatin(char * total)
{
    std::cout << total + 1 << total[0] << "ay\n";
}
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
12.08.2013, 13:49  [ТС]
Ну я как бы хотел сохранять результат, по этому и написал 2-й массив, а так то я понимал что можно просто выводить)
0
2 / 2 / 1
Регистрация: 29.01.2013
Сообщений: 47
12.08.2013, 14:30
Цитата Сообщение от MousePro Посмотреть сообщение
char c [13]={0};
чтобы не привязываться к размеру:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void printLatin(char * total)
{
    vector<char> op;
    char h[]="ay";
    for(int i=0;total[i+1]!='\0';i++)
        op.push_back(total[i+1]);
    op.push_back(total[0]);
    for(int i=0;h[i]!='\0';i++)
        op.push_back(h[i]);
    op.push_back('\0');
    for(int i=0;op[i]!='\0';i++)
        cout<<op[i];
    cout<<endl;
};
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
12.08.2013, 14:37  [ТС]
Цитата Сообщение от underwaterspace Посмотреть сообщение
чтобы не привязываться к размеру:
C++
1
2
int a=strlen(total)+2;
char c [a]
0
2 / 2 / 1
Регистрация: 29.01.2013
Сообщений: 47
12.08.2013, 14:45
Цитата Сообщение от MousePro Посмотреть сообщение
1
2
int a=strlen(total)+2;
char c [a]
я зачем-то динамически выделял
C++
1
char * c=new char[strlen(total)+2]
но, как видно, ничего хорошего не вышло, самому стыдно/
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
12.08.2013, 16:34
underwaterspace, динамически и надо выделять. Потому что это:
C++
1
2
int a=strlen(total)+2;
char c [a];
не компилируется даже. Размер массива должен быть константой времени компиляции.
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
12.08.2013, 17:37  [ТС]
Цитата Сообщение от Schizorb Посмотреть сообщение
underwaterspace, динамически и надо выделять. Потому что это:
C++
1
2
int a=strlen(total)+2;
char c [a];
не компилируется даже. Размер массива должен быть константой времени компиляции.
Я все равно еще не дошел до векторов
0
12.08.2013, 17:43

Не по теме:

MousePro, а я и не про вектора. А про то, что этот код не по стандарту написан.

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.08.2013, 17:43
Помогаю со студенческими работами здесь

Написать программу, преобразующую массив в алфавит английского языка
Дан массив букв, составляющих английский алфавит, но размещённых не по порядку. Написать программу, преобра- зующую этот массив в алфавит...

Написать программу обучения английского языка в виде тестов
помогите написать программу в Delphi ! несколько форм ! она должна попросить 1. ввести свои данные ФИО и 2. предложить пройти тест .... и...

Напишите функцию translate(text), которая переводит текст с русского языка на НРЗБРЧВ...
В письменности языка НРЗБРЧВ отсутствуют гласные буквы и знаки препинания, в остальном язык ничем не отличается от русского языка. Чтобы из...

Создать программу, которая для введенной фразы, удалит из нее комы
Создать программу, которая для введенной фразы, удалит из нее комы.

Написать программу, которая записывает в файл буквы английского алфавита
Написать программу, которая записывает в файл буквы английского алфавита.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru