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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2012, 21:35   #1
vovik4385
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 36
По умолчанию обьединение строк!

дано 2 строки и 2 целочисленных числа n и m!сделать 3 строку так чтобы в ней содержалось n первых элементов 1 строки и m последних символов 2 строки!
вот программа:
Код:
#include "stdafx.h"
#include<iostream>
#include<cstring>
using namespace std;



int _tmain(int argc, _TCHAR* argv[])
{
	unsigned int n;
	cin>>n;
	unsigned int m;
	cin>>m;
	int len;
	char str[]="Hello";
	char str1[]="my world";
	char *str2;
	char *z=str1;
	len=strlen(str1)-m;
	z+=len;
	char *p;
	p=new char[n+m];
	str2=p;
	strncpy(str2,str,n);
	strcat(str2,z);
		cout<<str2;
		delete []p;

	
	system("PAUSE");
	
	
		
	return 0;
}
вроде все работает но почему-то ещё выводится какой то мусор!!!

Последний раз редактировалось Stilet; 14.03.2012 в 22:21.
vovik4385 вне форума Ответить с цитированием
Старый 14.03.2012, 22:08   #2
crymchanin
Пользователь
 
Аватар для crymchanin
 
Регистрация: 01.02.2012
Сообщений: 84
По умолчанию

Да тут и в коде куча мусора..

Код:
int main(int argc, char* argv[])
{
	setlocale(LC_ALL, "Russian");

	int n;
	int m;
	int sz;
	char str1[] = "Hello";
	char str2[] = "world";
	char* result;
	char* str;

	cout<<"Введите кол-во символов 1-й строки:\n";
	cin>>n;
	cout<<"Введите кол-во символов 2-й строки:\n";
	cin>>m;
	sz = n + m + 1;
	result = new char[sz];
	str = new char[m + 1];
	
	memset(result, 0, sz);
	memset(str, 0, m + 1);

	strncpy(result, str1, n);
	strncpy(str, str2, m);
	strcat(result, str);

	cout<<result<<endl;

	delete[] result;
	delete[] str;
	system("pause");
	return 0;
}
Функция strncpy не всегда добавляет нулевой символ в конец строки и это и является причиной некорректной работы остальных функций для работы со строками.
crymchanin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обьединение 2х PNG в 3й Horsee Мультимедиа в Delphi 10 12.07.2011 19:26
Обьединение таблиц sear Помощь студентам 5 22.04.2011 18:55
Обьединение проектов в Delphi. arhiepiskop Общие вопросы Delphi 3 26.05.2010 16:32
Обьединение данных Zhohov Microsoft Office Excel 2 11.07.2008 14:34