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

Своя функция strcat, завершение с ошибкой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задана строка. Найти буквы и заменить http://www.cyberforum.ru/cpp-beginners/thread656793.html
не могу написать корректно код. помогите плиз. Задача: Задана строка из 16 символов. Найти буквы "o" в строке, если перед ними стоят буквы "l", то заменить на "a"
C++ Объявление переменных Пишу на VS2012. Перерыл кучу сайтов, но нигде не нашел, как объявить переменную в asm вставке? Добавлено через 53 минуты uuppp http://www.cyberforum.ru/cpp-beginners/thread656788.html
Исправить ошибки в программе "угадай число" C++
суть программы, генерирует случайное число от 1 до 1000, запрашивает число и говорит больше или меньше, если введено не число выдаёт сообщение об ошибке. В чём ошибка? Когда зарускаю и ввожу число...
C++ Контрольную сумма сегмента кода программы
Подскажите пожалуйста, как получить контрольную сумму сегмента кода программы? Создать многопоточную программу с самотестированием на "взлом". Программа состоит из двух потоков: основного и...
C++ Посчитать количество строковый символов в векторе http://www.cyberforum.ru/cpp-beginners/thread656769.html
Добрый день. В нижеприведённом коде есть задание. У меня не получается организовать подсчёт символов в векторе для дальнейшего объявления массива (хотелось бы сделать это двумя способами: при помощи...
C++ Работа с операторами условия Вводим число x. и потом программа должна поставить в порядке возрастания числа: sinx, cosx. lnx. Если при каком-либо x некоторые из выражений не имеют смысла, вывести сообщение об этом и сравнивать... подробнее

Показать сообщение отдельно
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.09.2012, 21:58
Можно, наверное, так:
Код
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
#include <iostream>
using namespace std;
 
 char* mystrcat(char *str, char *str2)
{
    int i, j;
    
    char *p = new char[strlen(str) + strlen(str2) + 1];
    
    for(i = 0; *(str+i); i++)
        *(p + i) = *(str+i);
    for(j = 0; *(str2 + j); i++, j++)
               *(p + i) = *(str2 + j);
    *(p + i) = '\0';
    
    return p;
}
 
int main()
{
    char *str = "asdfg";
    char *str2 = "vbbx";
    
    char *p = mystrcat(str, str2);
    
    cout << p << endl;
    
    cin.get();
    return 0;
}


Добавлено через 13 минут
Цитата Сообщение от azzkey Посмотреть сообщение
но ведь strcat устроен так. что он изменяет строку str, прибавляя к ней str2.
то есть из функции выходит дополненая str.
Или я не прав?
Правы, но размер str должен быть достаточным, для того, чтобы туда поместилось исходное содержимое str и содержимое str2, т.е., как предложил igorrr37: char str[256] = "s s s"; Массив на 256 символов, а занято только 6.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru