X
XIII
Доброго времени суток!
Нужна помощь..
Написал программу (C++)(а если быть точнее, собрал по кусочкам отовсюду), которая пока что:
1. Приветствует и просит ввести имя.
2. Открывает файл data.txt и выводит оттуда самое длинное слово.
Нужно доделать, но я не знаю как:
3. Чтобы программа выводила еще и все слова начинающиеся на ту же букву, что и самое длинное слово.
4. Чтобы программа выводила все слова начинающиеся на первую букву имени, которое ввел пользователь вначале.
Нужна помощь..
Написал программу (C++)(а если быть точнее, собрал по кусочкам отовсюду), которая пока что:
1. Приветствует и просит ввести имя.
2. Открывает файл data.txt и выводит оттуда самое длинное слово.
Нужно доделать, но я не знаю как:
3. Чтобы программа выводила еще и все слова начинающиеся на ту же букву, что и самое длинное слово.
4. Чтобы программа выводила все слова начинающиеся на первую букву имени, которое ввел пользователь вначале.
C++:
#include "StdAfx.h" // Ускорение компиляции проекта.
#include <stdio.h> // Используется для поддержки функции printf.
#include <time.h> // Иклюд для работы со временем.
#include <conio.h> // Создание интерфейса MS-DOS. Консольный вывод и ввод.
#include <iostream> // Заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++.
#include <clocale> // Отображение русских символов в программе.
#include <string> // Класс string предназначен, естественно, для работы со строками.
#include <windows.h> // Библиотека для работы с цветным текстом и фоном. Включает в себя Хэндл Консоли и такую функцию, как SetConsoleTextAttribute.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std; // Использование объявления string
int main()
{
setlocale(LC_CTYPE, "Rus"); // Отображение кириллицы и русских символов
char name[32];
printf("Введите ваше имя:\n");
scanf("%c",&name);
printf("Здравствуйте, %c. Добро пожаловать в программу вывода слов.\n",name);
long sLen;
long mLen;
char maxWord[32];
char * word;
char * text;
char delim[] = ",.?!-;: \n";
FILE * file = fopen("data.txt","rb");
if(!file)
printf("\nНевозможно открыть файл data.txt\n");
else
{
fseek(file,0,SEEK_END);
sLen = ftell(file);
fseek(file,0,SEEK_SET);
if(!(text = (char *)malloc((1 + sLen)*sizeof(char))))
printf("\nОшибка распределения памяти.\n");
else
if(!fread(text,1,sLen,file))
printf("\nОшибка чтение файла data.txt\n");
else
text[sLen] = '\0';
fclose(file);
if(text)
{
mLen = (sLen = 0);
printf("\nДанные в файле data.txt:\n");
word = strtok(text,delim);
while(word)
{
printf("%s ",word);
sLen = strlen(word);
if(mLen < sLen)
{
strcpy(maxWord,word);
mLen = sLen;
}
word = strtok(NULL,delim);
}
printf("\nСамое длинное слово: %s\n",maxWord);
}
}
getch();
return 0;
}