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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2014, 20:25   #1
Ligeros905
Пользователь
 
Регистрация: 14.10.2013
Сообщений: 33
По умолчанию Проблема с strcpy_s

Здравствуйте, помогите пожалуйста с проблемой. Компилятор ругается на strcpy_s сообщая что ф-ия перегружена. Перепробовал многое, но не выходит ничего. Помогите, что надо изменить?


Код:

#include "stdafx.h"
#include "iostream"

using namespace std;

class kniga
{
private:
	char* str[800];
public:
	kniga (char *str1)
{
	strcpy_s(str,str1);
}
kniga ()
{

}
	void output ();
	int kolvo ();
	void slovo (int num, char *slovo);
};
void kniga::output ()
{
	cout<<str<<"\n";
}

int kniga::kolvo()
{	
	int p=0;
	int sd, r=0, mp=0, kp=0;
		for (int i=0; i<strlen(str); i++)
	{
		if ((str[i]=='.')||(str[i]=='!')||(str[i]=='?')) 
			 p++;
		if (str[i]==' ')
			kp++;
	}
	sd=(strlen(str)-kp-p)/p;
	for (int i=0; i<strlen(str); i++)
		{
			r=r+1;
			if (str[i]==' ')
			r=r-1;
			if ((str[i]=='.')||(str[i]=='!')||(str[i]=='?'))
			{
					r=r-1;
					if (r<=sd) 
						mp++;
						r=0;
			}
		}
	return mp;
}


void kniga::slovo(int num, char *slovo)
{	
int a=0, b=0, counter=0, m=0;
char* buf[800];
for(int i=0; i<strlen(str); i++)
{
	if ((str[i]==' ')||(str[i]=='\n'))
	{
		counter++;
		if (counter==num-1)
			a=i+1;
		if (counter==num)
			b=i-1;
	}
}
strncpy(buf[800],str,a);
buf[a]='\0';
strcat(buf[800], slovo);
if ((str[b]=='.')||(str[b]=='!')||(str[b]=='?')) 
	b=b-1;
strncat(buf[800], str+b+1, strlen(str)-b);
strcpy(str,buf[800]);
delete [] buf;
}

void main()
{
	int kk, ii;
	char* txt = new char[800];
	cout<<"skolko stranic? \n";
	cin>>kk;
	cin.ignore();
	kniga* mas=new kniga[10];
	for (int i=0; i<kk; i++)
	{
			cout<<"Vvedite text "<<i+1<< " stranici \n";
			gets_s(txt,800);
			mas[i]=kniga(txt);
	}
	int max=0, k, v=0;
	for (int j=0; j<kk; j++)
	{
		k=mas[j].kolvo();
		if (k>=max)
		{
			max=k;
			v=j;
		}
	}
	int num;
	char* slov= new char[20];
	cout<<"Vvedite vashe slovo \n";
	cin>>slov;
	cout<<"Vvedite nomer slova \n";
	cin>>num;
	mas[v].slovo(num, slov);
	cout<<"Izmenennyi object:";
	mas[v].output();
	system("pause");
	delete [] slov, txt, mas;
}
Ligeros905 вне форума Ответить с цитированием
Старый 17.06.2014, 08:20   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А вы откройте мсдн, например, и посмотрите сколько и какие параметры у нее...
p51x вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неблокирующий сокет Си проблема с закрытием, проблема с закрытием сокетов в цикле mnx_vol C/C++ Сетевое программирование 0 06.11.2012 13:57
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37