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

Упражнение из Страуструпа: конкатенация С-строк - C++

Восстановить пароль Регистрация
 
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
10.08.2013, 18:27     Упражнение из Страуструпа: конкатенация С-строк #1
Напишите функцию cat(), которая принимает в качестве аргументов две С-строки и возвращает конкатенированную С-строку. Используйте операцию 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
#include <iostream>
 
using namespace std;
 
void cat(char *a, char *b)
{
    char *c = new char [];
 
    while (*c++ = *a++)
        cout << *c;
    while (*c++ = *b++)
        cout << *c;
 
    delete [] c;    
}
int main()
{
    char a[255], b[255];
 
    cin >> a >> b;
    
    cat(a, b);
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2013, 18:27     Упражнение из Страуструпа: конкатенация С-строк
Посмотрите здесь:

Конкатенация строк C++
Конкатенация строк C++
Конкатенация строк C++
Упражнение из Страуструпа (Определите таблицу названий месяцев года и числа дней в них) C++
Конкатенация строк C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Stereotip
 Аватар для Stereotip
2 / 2 / 0
Регистрация: 17.04.2012
Сообщений: 22
10.08.2013, 18:37     Упражнение из Страуструпа: конкатенация С-строк #2
размера у массива "c" не хватает))
fatalis
8 / 8 / 1
Регистрация: 09.08.2013
Сообщений: 68
10.08.2013, 18:55     Упражнение из Страуструпа: конкатенация С-строк #3
Конечно,не самое изящное решение,но все же работающее
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char* con(const char *a,const char *b)
{
    int len_a=(size_t)strlen(a),len_b=(size_t)strlen(b),i=0;
    char *c=new char[len_a+len_b];
    for(;i<len_a;i++)
    {
        c[i]=a[i];
    }
    for(;i<len_a+len_b;i++)
    {
        c[i]=b[i-len_a];
    }
    c[i]='\0';
    return c;
}
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
10.08.2013, 19:10     Упражнение из Страуструпа: конкатенация С-строк #4
как-то так
может кто подскажет как правильно память выделить, ее как-то больше чем надо получается
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
#include <iostream>
#include <stdio.h>
#include <string.h>
 
using namespace std;
 
void cat(char *a, char *b)
{
    char* c=new char[strlen(a)+strlen(b)+1];
    strcpy(c,a);
    strcat(c,b);
    puts(c);
delete [] c;    
}
int main()
{
    char a[255], b[255];
 
    cin >> a >> b;
    
    cat(a, b);
 system("pause");
    return 0;
}
fatalis
8 / 8 / 1
Регистрация: 09.08.2013
Сообщений: 68
10.08.2013, 19:20     Упражнение из Страуструпа: конкатенация С-строк #5
Мне кажется,что смысл задания-написание функции с нуля,а не использование стандартной функции strcat :-)
Yandex
Объявления
10.08.2013, 19:20     Упражнение из Страуструпа: конкатенация С-строк
Ответ Создать тему
Опции темы

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