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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2010, 13:21   #1
mspavlyxa
Пользователь
 
Аватар для mspavlyxa
 
Регистрация: 15.09.2009
Сообщений: 13
Восклицание

Проблемма!требуется подсказка!

Народ подскажите пожалуйста где тут у меня ошибка в коде
Проблемма с возвратом значений из функций почему не могу понять:confused :

Код:
#include <fstream> 
#include <iostream>
#include <locale.h>
using namespace std;
bool prov(char sl,char *line);
char poisk_slova(char *word);

int main() 

{ setlocale(LC_CTYPE,"Russian");
  
	
	/*	ofstream one_file("str.txt"); 
		one_file << "Учимся писать "<< endl; 

		ofstream two_file("sogl.txt");
		two_file << "бвгджзклмнпрстфхцчшщ"<< endl;

		
        */

           ifstream one_file("str.txt");
	ifstream two_file("sogl.txt");
	
	char word[64];char line[64];//char str[64];
	
	one_file.getline(word, sizeof(word),'\n');	
	two_file.getline(line, sizeof(line),'\n');
		
	
		if(prov( ( poisk_slova(word) ),line))		
			{cout<<"есть"<<endl;}
   return 0;
	}
bool prov(char sl,char *line)
{	
	int i,j=0,k=0;
	int kol_sogl=0;
	int poz;
	
		for(;sl[j]!='/0';j++)
				for(i=0;line[i]!=0;i++)
					if(sl[j]==line[i])					
						{kol_sogl++;poz=j;break;}	
					
				if((poz-kol_sogl)>poz)
					{return false;}
				else
					{cout<<poz; return true;}
}
char poisk_slova(char *word)
{
int i=0;int j=0;
char slowo[64];
	
while(word[i]!=' '){
			slowo[j]=word[i];
			i++;j++;
}slowo[j]='\0';

	return *slowo;
}

/*/int del(char *word, int poz, int kol_simb)
{
	int i;
	for(i = poz; word[i] != 0; i++)
	{
		word[i] = word[kol_simb+i];
	}
	return *str1; 
}*/
Забыл условия задачи написать:
Из входного потока читаются строки в которых слова разделены пробелами, надо будет удалить из строки слова в которых кол-во согласных больше заданного К,строку направить в выходной фаил.

Задача зашла в тупик на стадии зародышь.И если можно то дайте наставление по поводу дальнейшего решения

Последний раз редактировалось Stilet; 25.03.2010 в 13:31.
mspavlyxa вне форума Ответить с цитированием
Старый 25.03.2010, 13:28   #2
Lauraldo
Пользователь
 
Аватар для Lauraldo
 
Регистрация: 22.03.2010
Сообщений: 53
По умолчанию

Видать char и char* плохо совместимы...
Lauraldo вне форума Ответить с цитированием
Старый 25.03.2010, 13:34   #3
mspavlyxa
Пользователь
 
Аватар для mspavlyxa
 
Регистрация: 15.09.2009
Сообщений: 13
По умолчанию

да да VS так и говорил
в данном варианте дает ошибку в булевской функции
error C2109: subscript requires array or pointer type

Последний раз редактировалось mspavlyxa; 25.03.2010 в 14:13.
mspavlyxa вне форума Ответить с цитированием
Старый 25.03.2010, 16:02   #4
mspavlyxa
Пользователь
 
Аватар для mspavlyxa
 
Регистрация: 15.09.2009
Сообщений: 13
По умолчанию

Ребят подсобите пожалуйста
mspavlyxa вне форума Ответить с цитированием
Старый 25.03.2010, 16:18   #5
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

что компилятор выдает? и в какой строке...

Последний раз редактировалось NiCola999; 25.03.2010 в 16:20.
NiCola999 вне форума Ответить с цитированием
Старый 25.03.2010, 17:52   #6
mspavlyxa
Пользователь
 
Аватар для mspavlyxa
 
Регистрация: 15.09.2009
Сообщений: 13
По умолчанию

я маленько изменил код, теперь ошибку не выдает,что радует)))
мне надо теперь сделать чтоб мои слова удалялись в цикле.


#include <fstream>
#include <iostream>
#include <locale.h>
using namespace std;
//bool prov(char sl,char *line);
bool poisk_slova(char *str,char *line);
void del(char *word, int poz, int kol_simb);
char *copy(char *word,char *str);

int main()

{
setlocale(LC_CTYPE,"Russian");
int i=0;

/* ofstream one_file("str.txt");
one_file << "ааа бббб ааб"<< endl;

ofstream two_file("sogl.txt");
two_file << "бвгджзклмнпрстфхцчшщ"<< endl;

ofstream gla_file("glas.txt");
gla_file<<"аеёиоуэыюя"<<endl;*/

ifstream one_file("str.txt");
ifstream two_file("sogl.txt");
ifstream str_file("glas.txt");
char word[64];char line[64];char str[64];

one_file.getline(word, sizeof(word),'\n');
two_file.getline(line, sizeof(line),'\n');
str_file.getline(str, sizeof(str),'\n');

copy(word,str);


if(poisk_slova(str,line)){
cout<<" есть\n"<<str<<"\n";}
return 0;
}
bool poisk_slova(char *str,char *line)
{

int y=0;int u=0;
int j,i;int kol_simb=0;
int kol_sogl=0,poz;
char slowo[64];

while(str[u]!=' ')
{
slowo[y]=str[u];
y++;u++;kol_simb=y;poz=u-kol_simb;
slowo[u+1]='\0';
}


for(j=0;slowo[j]!=0;j++)
for(i=0;line[i]!=0;i++)
if(slowo[j]==line[i])
{kol_sogl++;break;}

if((kol_simb-kol_sogl)>poz)

{
return false;
}
else
{
del(str,poz,kol_simb);
return true;
}
cout<<str<<"\n";
}
void del(char *str, int poz, int kol_simb)
{
int t;
for(t = poz; str[t] !='\0'; t++)
{
str[t] = str[kol_simb+t];
}

}
char *copy(char *word,char *str)
{
int i;
for(i=0; word[i] != 0; i++)
{
str[i] = word[i];
}str[i]='\0';cout<<str<<"\n";return str;
}
mspavlyxa вне форума Ответить с цитированием
Старый 25.03.2010, 23:46   #7
mspavlyxa
Пользователь
 
Аватар для mspavlyxa
 
Регистрация: 15.09.2009
Сообщений: 13
По умолчанию

а как этот цикл приклеить ума не приложу.Башня не варит уже(((
mspavlyxa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по потокам. gusluk Общие вопросы Delphi 10 27.11.2009 10:37
срочно нужна помощь по потокам! Voipp Общие вопросы C/C++ 0 13.09.2009 21:21
NTFS, потоки alexander707 Операционные системы общие вопросы 2 20.06.2009 20:50
Где можно найти много примеров по потокам и особенно по компоненту backgroundworker? Neymexa Общие вопросы .NET 1 16.05.2009 03:34
Вопрос по потокам Eretic Общие вопросы по Java, Java SE, Kotlin 5 02.04.2009 00:17