#include <stdio.h>
int n;
char s[80];
int lim=80;
// Функция вычисляет длину строки s1
len_string(char s1[])
{
int count=0;
while (s1[count]!='\0') ++count;
return(count);
}
// Прорисовка меню
menu_redraw()
{
printf("\n***********************************************************\n"
printf("Главное меню программы:\n"
printf("* 1. Ввод строки\n"
printf("* 2. Вывод строки\n"
printf("* 3. Вывод введенного текста в столбец\n"
printf("* 4. Вывод по словам\n"
printf("* 5. Реверс\n"
printf("* 6. Функции\n"
printf("* 7. О программе\n"
printf("* 8. Перевод символа в ASCII-код\n"
printf("* 9. Перевод ASCII-кода в символ\n"
printf("* q. Выход\n"
printf("*********************************************************\n"
return 0;
}
// Конвертер ASCII-кода в символ
ascii_to_char()
{
int c;
printf("Введите код символа напр (A - 65): "
scanf("%d",&c); // Ввод кода символа
printf("Вы ввели код символа: "
putchar(c); // Вывод символа
putchar('\n'); // Вывод перевода каретки
}
// Конвертер символа в ASCII-код
char_to_ascii()
{
int c;
getchar();
printf("Нажмите символ который вы хотите декодировать: "
c=getchar();
printf("ASCII-код введенного символа: %d\n",c);
}
// О программе
about()
{
printf("\n*********************************************************\n"
printf("* NIX forever !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
printf("*********************************************************\n"
}
// Функция переворацивает содержимое строки s
reverse()
{
char s2;
int i=0;
int count;
count=len_string(s);
count-=2;
for (i=0;count>=i;count--,i++)
{
s2=s[i];
s[i]=s[count];
s[count]=s2;
}
}
// Функция выводит строку по словам после каждого слова перенос каретки
output_word()
{
int i;
printf("Вывод строки пословам:\n"
for (i=0;i<lim;i++)
{
if (s[i]!=' ' && s[i]!='\n' && s[i]!='\t' && s[i]!='\0') putchar(s[i]);
else putchar('\n');
}
}
// Вывод строки в столбик
output_stolb()
{
int i;
printf("Вывод строки в столбец\n"
for (i=0;i<lim;i++) { putchar(s[i]); putchar('\n'); }
}
// Просто вывод строки
output_str()
{
printf("Вывод строки: %s\n",s);
}
// Функция выхода из программы
quit()
{
printf("Выходим....\n"
exit(0);
}
// Функция чтения строки из stdin (стандартного ввода)
int getstr(char s[])
{
int lim=80;
int c,i;
printf("Введите строку: "
getchar(); // Необходимо чтобы срезать символ перевода строки
i=0;
while(--lim>0 && (c=getchar())!='\n')
{
s[i++]=c;
}
if (c=='\n')
s[i++]=c;
s[i]='\0';
return i;
}
// Функция обработки меню через глобальную переменную "n"
menu()
{
switch(n)
{
case 'q': quit(); break;
case 'Q': quit; break;
case '1': lim=getstr(s); break;
case '2': output_str(); getchar(); break;
case '3': output_stolb(); getchar(); break;
case '4': output_word(); getchar(); break;
case '5': reverse(); getchar(); break;
//case '6': table(); break;
case '7': about(); getchar(); break;
case '8': char_to_ascii(); getchar(); break;
case '9': ascii_to_char(); getchar(); break;
//case 'a': menu_redraw(); getchar(); break;
//case 'A': menu_redraw(); getchar(); break;
default: printf("Error: Некоректный выбор\n" menu_redraw(); break;
}
}
// Главная функция управляет всем ходом выполнения
main()
{
// Прорисовка меню в первый раз при запуске
menu_redraw();
while ((n=getchar())!=0) menu();
return 0;
}