Форум программистов, компьютерный форум CyberForum.ru

Конкатенация строк - C++

Восстановить пароль Регистрация
 
Dark Illusion
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 25
31.05.2013, 01:18     Конкатенация строк #1
Здравствуйте. Имеется функция - Concat(s1,s2). Назначение - конкатенация строк s1 и s2 (конкатенцаия - это операция склеивания объектов линейной структуры, обычно строк. Например, конкатенация слов «микро» и «мир» даст слово «микромир»). Необходимо разработать два варианта заданной функции - используя традиционную обработку массивов и используя адресную арифметику. Используя традиционную обработку массивов я сделал, а вот второй способ не получается реализовать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//---------------------------------------------------------------------------
#include <iostream>
//---------------------------------------------------------------------------
void ConCat (char *Str1, char *Str2, char *FullStr)
{
  strcat(FullStr,Str1);
  strcat(FullStr,Str2);
}
//---------------------------------------------------------------------------
int main()
{
  char s1[] = "kino";
  char s2[] = "teatr";
  char fs[20] = { NULL };
  ConCat(s1,s2,fs);
 
  std::cout << fs << std::endl;
  std::system("pause");
 
  return 0;
}
//-------------------------------------------------------
Вот первый способ. Помогите, пожалуйста, реализовать программу вторым способом. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 01:18     Конкатенация строк
Посмотрите здесь:

C++ Конкатенация строк
C++ конкатенация строк
Конкатенация строк C++
Конкатенация строк C++
Конкатенация строк C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
31.05.2013, 01:46     Конкатенация строк #2
Ничего сложного. Создаете два массива ch1[256] и ch2[128].
В первый читаете первую строку во второй вторую. После чего создаете цикл с кол-вом итераций равным 128.
А внутри цикла выполняете вот это действие:ch1[128+i]=ch2[i];
Ну это естественно будет смотреться не очень. Советую вам добавить код, который будет узнавать длинну введеных строк и в соответствии с этим подкорректировать число циклов и смещение относительно первой строки.
Максим2001
7 / 7 / 1
Регистрация: 11.01.2012
Сообщений: 85
31.05.2013, 01:52     Конкатенация строк #3
На вскидку:
C++
1
2
FullStr = Str1;
strcpy(FullStr+Str1.length(),Str2);
По моему как-то так...
Dark Illusion
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 25
31.05.2013, 12:13  [ТС]     Конкатенация строк #4
Демик, а можно полный код, пожалуйста?

Добавлено через 11 секунд
Максим2001, а можно полный код, пожалуйста?
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
01.06.2013, 16:54     Конкатенация строк #5
Хаха, алгоритм описали, пиши сам, за тебя никто ничего не сделает.
Yandex
Объявления
01.06.2013, 16:54     Конкатенация строк
Ответ Создать тему
Опции темы

Текущее время: 10:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru