Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 18:23   #1
Донат
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 22
По умолчанию Симметричные слова

Написать программу, которая считывает текст из файла и записывает каждое слово в отдельный элемент массива. Вывести на экран а) симметричные слова, например, «казак», «комок», б) слова, заканчивающиеся на согласную.

Сделал под (б)
Помогите сделать задачу под (а)


#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include <clocale>
#include "conio.h"
#include "Windows.h"

#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
int _tmain(int argc, _TCHAR* argv[])
{
const int c = 1024;
char *string[c];
char *sim;
char str[1024] = "";
char size[] = ".-;:?,!+\" #'=\n^$(){}[]\/><";
char end[] = "цкгтжвфсщбнзмлдшрхп";
int i = -1;
int q = 0;
int w = 0;
int j = 0;
int sum = 0;
int k = 0;

_CrtSetDbgFlag (_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

SetConsoleCP(1251);
SetConsoleOutputCP(1251);

printf("************Menu*********** **\n");
printf("1. Открыть файл\n");
printf("2. Посмотреть исходный текст\n");
printf("3. Обработка и вывод\n");
printf("0. Выход\n");
printf("*************************** **");
char menu;

do
{
menu = getch();

switch(menu)
{
case '1':
{
FILE *fp = fopen("LabWork.txt", "r");

if(NULL == fp)
{
printf("Не удалось открыть файл!(Проверьте на наличие файла в папке с программой)");
getch();
return 0;
}

while(!feof(fp))
{
fgets(str, 1024, fp);
}
fclose(fp);
k = 1;

printf("\nФайл успешно открыт,для продолжения выберите любой пункт меню...");
break;
}
case '2':
{
FILE *fp = fopen("LabWork.txt","r");
if (NULL == fp)
{
printf("\n\nНе удалось открыть файл!(Проверьте на наличие файла в папке с программой)\n");
system("pause");
return 0;
}

char str[1024] = "";
while (!feof(fp))
{
fgets(str, 1024, fp);

printf("\n-------------------------------------------\n");
printf ("%s",str);//Вывод исходника
printf("\n-------------------------------------------\n");
}
fclose(fp);
break;
}

case '3':
{
sim = strtok(str, size);
while (sim != NULL)
{
i++;
q = strlen(sim);
string[i] = new char [q];
string[i] = sim;
sim = strtok(NULL, size);
}
w = i;
for(int j = 0; j < w; j++)//сортировка по алфавиту
{
for(int i = j + 1; i < w+1; i++)
{
if(strcmp(string[j], string[i]) > 0)
{
sim = string[j];
string[j] = string[i];
string[i] = sim;
}
}
}




char men;
do
{
printf("\nЗадания к лабораторной работе\n\n");
printf("*************************** *****\n");
printf("1)Вывести на экран симметричные слова\n");
printf("2)Найти слова с согласными на конце\n");
printf("0)В меню\n");

men=getch();
switch(men)
{
case '1':
{
system("cls");

printf("Фамилии расположенные по алфавиту:\n\n");
printf("---------\n");

for(int i = 0; i < w + 1; i++)
{
puts(string[i]);
}
break;
}
case '2':
{
printf("\nСлова заканчивающиеся на согласную букву:\n");
for(int i = 0; i < w + 1; i++)
{
q = strlen(string[i]);
if(string[i][q-1] == 'ц' || string[i][q-1] == 'к' || string[i][q-1] == 'г' || string[i][q-1] == 'т' || string[i][q-1] == 'ж' || string[i][q-1] == 'в' || string[i][q-1] == 'ф' || string[i][q-1] == 'с' || string[i][q-1] == 'щ' || string[i][q-1] == 'б' || string[i][q-1] == 'н' || string[i][q-1] == 'з' || string[i][q-1] == 'м' || string[i][q-1] == 'л' || string[i][q-1] == 'д' || string[i][q-1] == 'ш' || string[i][q-1] == 'р' || string[i][q-1] == 'п' || string[i][q-1] == 'х')
{
puts(string[i]);
}
}
break;
}

default: if(men!='0')
{
printf("Неверный пункт меню.\nВведите команду\n\n");
}
}
}while (men!='0');
system("cls");
printf("************Menu*********** **\n");
printf("1. Открыть файл\n");
printf("2. Посмотреть исходный текст\n");
printf("3. Обработка и вывод\n");
printf("0. Выход\n");
printf("*************************** **");
break;
}

default: if(menu!='0')
{
printf("\n\nНеверный пункт меню! Повторите попытку...");
}
}

}while (menu!='0');

return 0;
}
Донат вне форума Ответить с цитированием
Старый 20.12.2011, 22:00   #2
Донат
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 22
По умолчанию

Тему в корзину
Донат вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi 7 Симметричные и асимметричные методы шифрования Student599 Помощь студентам 1 24.05.2011 22:30
СИ. Удалить слова, которые содержат все повторяющиеся буквы первого слова nick23 Помощь студентам 7 01.11.2009 14:47
найти все симметричные четырехзначные числа , например 7667, 1331 V I K T O R I Y A Паскаль, Turbo Pascal, PascalABC.NET 6 03.05.2009 15:47