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

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

Войти
Регистрация
Восстановить пароль
 
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
#1

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

10.08.2013, 18:27. Просмотров 431. Ответов 4
Метки нет (Все метки)

Напишите функцию 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2013, 18:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Упражнение из Страуструпа: конкатенация С-строк (C++):

Упражнение №8 глава 5 из книги Страуструпа - C++
Здравствуйте. Помогите решить задание. Напишите программу,считывающую ряд чисел и записывающую их в vector&lt;int&gt;.После того как...

Упражнение из книги Страуструпа. Программа угадай число. Можно ли написать лучше? - C++
Всем привет. Сделал упражнение к книге Бьерна Страуструпа &quot;Программирование. Принципы и практика использования С++&quot;. Текст упражнения...

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

Упражнение из книги Страуструпа. Программа мини-калькулятор. Цифры записанные в строковом формате - C++
Привет всем. Не могу понять, как необходимо изменить программу исходя из условия упражнения. Упражнение сформулировано так: ...

Упражнение по программированию (Стивен Прата, глава 2, упражнение 3) - C++
2 Глава, вопрос 3. Напишите программу на С++, которая использует три определяемых пользователем функции (включая main()) и генерирует...

Упражнение из книги Страуструпа - C++
Напишите программу, проверяющую корректность предложений в соответствии с правилами &quot;Английской грамматики&quot; (см.ниже) Будем считать, что...

4
Stereotip
2 / 2 / 0
Регистрация: 17.04.2012
Сообщений: 22
10.08.2013, 18:37 #2
размера у массива "c" не хватает))
0
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;
}
0
Valentina
68 / 68 / 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;
}
0
fatalis
8 / 8 / 1
Регистрация: 09.08.2013
Сообщений: 68
10.08.2013, 19:20 #5
Мне кажется,что смысл задания-написание функции с нуля,а не использование стандартной функции strcat :-)
0
10.08.2013, 19:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2013, 19:20
Привет! Вот еще темы с ответами:

Конкатенация строк - C++
Нужно объединить три строки: &quot;txt/&quot; + i + &quot;.txt&quot; в char* URL. i переменная в цикле. Сделал так: strcpy(URL, &quot;txt/\0&quot;); ...

Конкатенация строк - C++
Разбираю учебный пример - написать класс для работы со строками. Всего два поля: private: int _size; // длина строки, без...

Конкатенация строк - C++
Должно быть консольное приложение. Очень простой вопрос, но сам что-то завис, и немогу найти что хочу. Значит так есть такой кусок кода ...

Конкатенация строк - C++
Здравствуйте. Имеется функция - Concat(s1,s2). Назначение - конкатенация строк s1 и s2 (конкатенцаия - это операция склеивания объектов...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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