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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mr_Eugene
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 18
#1

Не работает самодельная функция конкатенации:) - C++

06.12.2013, 22:34. Просмотров 253. Ответов 3
Метки нет (Все метки)

Здравствуйте форумчанеПомогите советом дельным
Задание:написать функцию конкатенации строк используя массивы char.Использовать new для выделения памяти новой строке.Вот моя функция.Косяк в том,что первую строку копирует она прекрасно,а вот вторую никак.Выводит мусор.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "stdafx.h"
#include "iostream"
#include "string.h"
#include "string"
 
 
using namespace std;
 
void cat(char*,char*);
 
int _tmain(int argc, _TCHAR* argv[])
{
    char str1[]="Hello,";  
    char str2[]="Mike";
    cat(str1,str2);
     cout<<"\n";
    system("pause");
    return 0;
}
 
void cat(char* str1, char* str2)
{
  int i=0,j=0;
  char* con_string = new char[strlen(str1)+strlen(str2)+1]; //выделели память на две строки + 1 для терминального нуля
  for(i=0;i<strlen(str1);i++)       //записываем 1 строку
  {
    con_string[i]=str1[i];
  }
  for(;i<strlen(str2);i++)        //записываем 2 строку.
  {
    con_string[i]=str2[i];
  }
 
  cout<<con_string;  //и тут вот какашка
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 22:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает самодельная функция конкатенации:) (C++):

Функция конкатенации двух строк - C++
Здравствуйте, помогите сделать функцию сложения двух строк, примерно так: void add(char *str1, char *str2) { *plus=new char; *plus...

Своя функция конкатенации двух строк - C++
Доброго времени суток всем. Возникла проблема при работе с указателями. Код, который представлен ниже, вылетает с ошибкой...

Функция cin.get(array, 80) работает в одной программе, но не работает в другой - C++
Добрый день. Я что то совсем запутался, одна и та же функция в одной программе работает, а в другой нет. В этой программе...

Собственная реализация функции конкатенации - C++
Вопрос в комментарии к коду. Объясните пожалуйста (см. ниже что именно) #include &lt;stdio.h&gt; void strсat(char *s1, char *s2) { ...

Показать значение конкатенации строк s1 и s2 - C++
Всем доброго времени суток! Мне необходимо выполнить следующие задания: Написать программу, демонстрирующую работу с объектами двух...

Реализовать функцию конкатенации двух строк - C++
Вам требуется реализовать функцию конкатенации (склейки) двух C-style строк. Функция конкатенации принимает на вход две C-style строки и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
06.12.2013, 22:49 #2
Во-первых
Цитата Сообщение от mr_Eugene Посмотреть сообщение
for(;i<strlen(str2);i++) * * * *//записываем 2 строку.
* {
* * con_string[i]=str2[i];
* }
Во-вторых после всех копирований в конец массива нужно записывать нулевой символ.

Добавлено через 1 минуту
И удалять выделенную память после работы не забывайте
1
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.12.2013, 22:52 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void cat(char* str1, char* str2)
{
  int i=0,j=0;
  char* con_string = new char[strlen(str1)+strlen(str2)+1]; //выделели память на две строки + 1 для терминального нуля
  for(i=0;i<strlen(str1);i++)       //записываем 1 строку
  {
    con_string[i]=str1[i];
  }
  for( ; j < strlen(str2); i++, j++)        //записываем 2 строку.
  {
    con_string[i]=str2[j];
  }
  con_string[i] = '\0';
  cout<<con_string;  
 
}
1
mr_Eugene
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 18
06.12.2013, 23:10  [ТС] #4
спасибо большое!)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2013, 23:10
Привет! Вот еще темы с ответами:

Способы конкатенации переменных строкового типа и Char - C++
#include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; int main() { char *_new = &quot;\\formats..&quot;; char...

Составить функцию конкатенации (слияния) двух строк - C++
составить функцию конкатенации (слияния) двух строк.в основной програме использовать эту функцию для слияния четырех строк.

Какой способ конкатенации строк лучше использовать? - C++
Всем доброго времени суток. Я запутался с объединением строк на С++. Несколько классов про string запутывают как-то. Вот например есть...

Написать программу, реализующую функцию конкатенации k строк - C++
Заранее благодарю.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.12.2013, 23:10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru