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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2009, 17:13   #1
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
Радость Работа со строками

Условие: нужно использовать в функции main() вызов стандартной функции, которая копирует заданное количество kol символов со второй строки в первую, strncat: char *strncat(char *dest, const char *arc, size_t kol) и написать аналог этой функции...я написал, только у меня выдает ошибку, которая мне не понятна...помогите пожалуйста разобраться...

Код:
#include <iostream>
#include <string>
#include<conio.h>
using namespace std;
char *strncat_1(char,const char,unsigned int);
char *strncat(char,const char,unsigned int);

namespace str
{
char *strncat(char *dest,const char *src,size_t kol);
}



char *strncat_1(char *dest,const char *src,int kol)
{
char A[255],B[255];
dest=&A[0];
src=&B[0];
for (int i=0; dest[i]!='/0'; i++)
{
if (dest[i]=='/0')
{
for (int count=0,c=0; count<kol; count++)
dest[i]=src[c++];
}
}
return dest;
}


int main ()
{
char A[255];
char B[255];
char *dest=&A[0],*src=&B[0];
int kol;
cout<<"Vvedite pervuyu stroku\n";
cin>>A;
cout<<"Vvedite vtoruyu stroku\n";
cin>>B;
cout<<"Vvedite kolichestvo simvolov\n";
cin>>kol;

cout<<"Proverka std funkcii\n";
cout<<strncat(dest,src,kol)<<endl;

cout<<"\nProverka sobstvennoy funkcii\n";
cout<<strncat_1(dest,src,kol)<<endl;
return 0;
getch();
}

Последний раз редактировалось Sazary; 10.10.2009 в 18:48.
JeyKip вне форума Ответить с цитированием
Старый 10.10.2009, 17:45   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
#include <iostream>
using namespace std;

char* strncat_x(char* dest, char const* str, int n)
{
	char* shlemiel = dest;
	for(; *shlemiel; ++shlemiel);
	while(*str && n){
		*shlemiel++ = *str++;
		--n;
	}
	*shlemiel = 0;
	return dest;
}

int main ()
{
	char A[255];
	char B[255];
	int kol;
	cout<<"Vvedite pervuyu stroku\n";
	cin>>A;
	cout<<"Vvedite vtoruyu stroku\n";
	cin>>B;
	cout<<"Vvedite kolichestvo simvolov\n";
	cin>>kol;

//	cout<<"Proverka std funkcii\n";
//	cout<<strncat(A,B,kol)<<endl;

	cout<<"\nProverka sobstvennoy funkcii\n";
	cout<<strncat_x(A,B,kol)<<endl ;
	return 0;
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 10.10.2009, 18:41   #3
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
Хорошо

Спасибо огромное...))) Очень помог...)))
JeyKip вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками GoAnd Общие вопросы по Java, Java SE, Kotlin 9 22.09.2010 03:36
работа со строками lg12 Помощь студентам 7 28.08.2009 17:47
Работа со строками. ViNcHeStEr Помощь студентам 6 29.06.2008 08:14