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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Dejust
49 / 49 / 1
Регистрация: 31.01.2011
Сообщений: 156
#1

Задачка от Страуструпа для новичков - C++

31.01.2011, 16:14. Просмотров 1607. Ответов 2
Метки нет (Все метки)

Вот задачка от Страуструпа для новичков
Напишите функцию cat(), которая принимает в качестве аргументов две C-строки и возвращает конкатенированную C-строку. Используйте оператор new для выделения памяти под результат
Мое решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
char* cat(const char* str_1, const char* str_2)
{
    int len_1 = strlen(str_1), 
        len_2 = strlen(str_2), 
        full_strlen = len_1+len_2;
 
    char* cat_str = new char[full_strlen];
    
    // Переписываем str_1 в cat_str
    for(int i = 0; i<=len_1; i++)
        cat_str[i] = str_1[i];
 
    // Добавляем к str_1 строку str_2
    int w = 0; 
    for(int i = len_1; i<=full_strlen; i++)
    {
        cat_str[i] = str_2[w];
        w++;
    }
 
    return cat_str;
}
Да, я понимаю, что весьма топорно, так что с радостью посмотрю на решения других участников форума


 Комментарий модератора 
В теме "Задачи для тренировки и лучшего понимания" рассматриваются задачи НЕ для новичков
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2011, 16:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задачка от Страуструпа для новичков (C++):

Задачка для новичков #3: определить, является ли строка палиндромом - C++
Простенькая задачка, нужно запилить нормальный плюсовый код. Юзер посимвольно вводит строку, прога должна определять, является ли...

Задачка для новичков#1: найти причину UB в коде и исправить его согласно условию - C++
Привет молодые коллеги, нашёл у себя под диваном интересную задачку - она лёгкая для гуру ( поэтому вы увидите ниже ответы на задачку...

Задачка из книги Страуструпа - C++
Здравствуйте могли бы вы мне помочь в решении задачи. Вот собственно само условие. Условие: Теперь измените тело цикла так, чтобы он...

Задачка из книги Страуструпа... - C++
Доброго времени суток всем! Заранее благодарен за ответы и, возможные, пути исправления... Итак: &quot;Считайте последовательности чисел...

Задачка из страуструпа , глава 4 ,вектора - C++
Здравствуйте, помогите пожалуйста довести задачку до ума Вот сама задачка: {deleted} Нарушены п.5.18 и 5.19 Правил ...

Задачка для новичков #2: вывести в методе класса-родителя значение данных-членов из дочернего класса - C++
Вдохновленный соседней темой тоже решил задать свой вопрос таким же начинающим программистам как и я :) Все кто хочет попробовать дать...

2
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
31.01.2011, 16:17 #2
Dejust, не выделяется память под нуль-терминатор
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
31.01.2011, 21:38 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
char *Cat(const char *first_string, const char *second_string) {
  char *result = new char[strlen(first_string) + strlen(second_string) + 1];
  char *destination_symbol = result;
  const char *source_symbol = first_string;
  while (*source_symbol != '\0')
    *(destination_symbol++) = *(source_symbol++);
  source_symbol = second_string;
  while (*source_symbol != '\0')
    *(destination_symbol++) = *(source_symbol++);
 
  *destination_symbol = '\0';
  return result;
}
Конечно, нельзя так с С строками. Воизбежание, они должны создаваться и удаляться как-то более организованно. )
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2011, 21:38
Привет! Вот еще темы с ответами:

Читаю книгу Страуструпа для новичков но мне одному она кажется трудной и не совсем понятной? - C++
на протяжении всей книги он показывает код в виде ...&lt;...&gt;... почему просто бы не объяснить?в ООП Р.Лафоре и Б.Эккеля все норм по...

Библиотеки для книги Страуструпа - C++
Доброго времени суток! Дядя Бьярне использует библиотеки в своей книге &quot;Принципы и практика использования С++&quot;, которых нет в компиляторах....

Для того чтобы выучить С++ по книге Бьёрна Страуструпа - C++
Для того чтобы выучить С++ по книге Бьёрна Страуструпа обязательно знать Си??

Подскажите пожалуйста хорошую литературу для изучения с++, для новичков - C++
Чтобы подошла человеку , который не сталкивался с программированием , а вот сейчас ему очень срочно и быстро нужно освоить хотя бы главные...


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

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

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