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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2011, 14:46   #1
ZevS13
Пользователь
 
Регистрация: 28.02.2011
Сообщений: 11
По умолчанию Поиск самого короткого слова в тексте

Здравствуйте,у меня проблема с функцией поиска самого короткого слова в тексте,писал я ее где-то месяц назад для поиска самого короткого слова в строке,но с текстом она почему то не работает) исправьте где не прав пожалуйста.
Код:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int ProvRazm();
int Vivodnaekran();
int SamKorotkSlov();

 int main()
 {
	
	 setlocale(0,"rus");
	 string buf;
	 ifstream file("text.DAT");	/*Открываем файл*/
	 if(!file.is_open())			/*Проверяем файл*/
	 {
		 cerr<<"Файла нету!!проверь имя файла!или его наличие!"<<endl;
		 getchar();
		 return 1;
	 }
	ProvRazm();
	Vivodnaekran();
	SamKorotkSlov();
	system("pause");
	return 0;

	 
 }
 int ProvRazm()
{
	
	FILE *in=fopen("text.dat","r");//открытие потока
					//с параметром "только для чтения"
	int sum=0;
	char buf[72];
	while(!feof(in))//проверка размеров текста
	{
		fgets(buf,72,in);//ф-ция коп. одной строки из файла
		if(strlen(buf)>70)//проверка длины строки
		{
			cout<<"Размер строк слишком велик(не больше 70).\n";
			
		}
		sum+=strlen(buf);//ф-ция подсчета кол-ва символов в строке
	}
	if(sum>1000)
	{
		cout<<"Большое колличество символов(не больше 1000).\n";
		
	}
	fclose(in);//закрытие потока
	getchar();
	return sum;//возвращение кол-ва символов в файле
}


 int Vivodnaekran()
 {
	 string buf;
	 ifstream file("text.DAT");
	 cout<<"Содержимое файла:"<<endl;
	 while ( getline(file, buf) )
	{
                cout << buf << endl;
	}
	 return 1;
 }

 int SamKorotkSlov()
 {	
char str[1000];
   //curlen - текущая длина слова
   //maxlen - максимальная длина слова
   //index - индекс, соответствующий позиции
   //конца самого длинного слова +1
int curlen = 0, maxlen = 0, index = 0, i;
  ifstream file("text.DAT");
 for(i=0;;i++)
   {
     if(str[i]==' '|| str[i]=='\0'){
         if(curlen>maxlen){
           maxlen = curlen;
             index = i;
         }
         //если конец строки -> выйти из цикла
         if(str[i]=='\0')break;
         curlen = 0;
      }
      else curlen++;
   }
 cout << "" <<maxlen<<endl;
   getchar ();
   return 0;
}
ZevS13 вне форума Ответить с цитированием
Старый 28.03.2011, 15:00   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

Код:
#include <iostream>
#include <iterator>
#include <string>
#include <fstream>
#include <algorithm>

using namespace std;

bool cmp(const string &str1, const string &str2)
{ return str1.length() < str2.length(); }

int main()
{
	fstream f("c:\\text.txt");
	cout << *min_element(istream_iterator<string>(f), istream_iterator<string>(), cmp) << endl;
	return 0;
}
вопросы?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 07.06.2011, 01:39   #3
meta
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 27
По умолчанию

а можно тоже самое на Си??
meta вне форума Ответить с цитированием
Старый 07.06.2011, 12:34   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

естественно можно. на любом языке это сделать можно
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск слова в тексте shked1000 PHP 4 12.01.2011 13:42
Организовать поиск всех вхождений заданного слова в загруженном тексте s2dentishe Помощь студентам 0 21.11.2009 18:53
Нахождение самого короткого слова Диезушка Помощь студентам 2 20.10.2009 21:43
Pascal//определить длину самого короткого и самого длинного слова в строке ShnurOK Помощь студентам 2 16.12.2007 10:43