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

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

Войти
Регистрация
Восстановить пароль
 
RocBoy-D
32 / 31 / 7
Регистрация: 10.03.2012
Сообщений: 362
#1

Функция strcpy () - строка должна быть пустой? - C++

17.11.2012, 23:03. Просмотров 593. Ответов 4
Метки нет (Все метки)

Здравствуйте! Возник вопрос: пусть имеются две непустые строки s1 и s2. Правильно ли копировать содержимое строки s2 в строку s1? Или строка s1 должна быть пустой? Проверил, вроде работает и так и так.
C++
1
2
3
4
5
6
7
8
char *str1 = new char [25], *str2 = new char [50];
    
    cin.getline (str1, 25);
    cin.getline (str2, 50);
    delete [] str1;
    str1 = new char [strlen (str2) + 1];
    strcpy (str1, str2);
    cout << str2;
или
C++
1
2
3
4
5
6
7
char *str1 = new char [25], *str2 = new char [50];
    
    cin.getline (str1, 25);
    cin.getline (str2, 50);
    
    strcpy (str1, str2);
    cout << str2;
Добавлено через 9 минут
В последних строчках не str2, a str1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 23:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция strcpy () - строка должна быть пустой? (C++):

Составьте программу, вычисляющую функцию y = x! (факториал). Функция расчета факториала должна быть - C++
Составьте программу, вычисляющую функцию y = x! (факториал). Функция расчета факториала должна быть рекурсивной и вызываться из функции...

Inline функции - на сколько должна быть маленькая функция, чтоб она подошла под inline? - C++
Здравствуйте. Знаю теорию, но не понимаю, на сколько должна быть маленькая функция, чтоб она подошла под inline ? Как...

strcpy - как быть? - C++
Всем Доброго времени суток. Возник вопрос. В процессе работы над заданием, столкнулся с проблемой, которую не хватает сил обойти. ...

Функция strcpy - C++
цель очевидна. почему не работает? :-| #include &lt;iostream&gt; void strcpy(char *from, char *to) { to=from; } int main() { ...

функция strcpy и strcat - C++
Добрый день!У меня такая проблема...Есть массив строк, где хранятся имена и при выводе имени на экран,если оно длиннее определенного,то я...

Функция strcpy() не копирует строку - C++
Функция strcpy() не копирует строку //--------------------------------------------------------------------------- #pragma hdrstop ...

4
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
17.11.2012, 23:10 #2
Копируй на здоровье,
А уж пустая str1 или полная, это компилятору безразлично; ему безразлично также, если str2 будет больше str1

C++
1
2
3
char str1 []= "qqq"; 
char str2 []= "eeeee";  
strcpy (str1, str2);
копирование всё равно произойдёт, но программа отработает некорректно. За подробным надо следить вручную, компилятор такого не остлеживает.

И да, скопируется 6 символов, если чё.
0
RocBoy-D
32 / 31 / 7
Регистрация: 10.03.2012
Сообщений: 362
17.11.2012, 23:16  [ТС] #3
kravam, то есть лучше все-таки освобождать память?
0
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
18.11.2012, 02:40 #4
В смысле освобождать память?
str2 скопируется в str1, какую память ты хочешь освобождать и главное, зачем?

Тебе нужно, чтобы на месте str1 было содержание str2. Если ты думаешь что для того, чтобы в какую-то ячейку памяти записать содержание, нужно эту ячейку обнулить, ты ошибаешься. Или я не понимаю, о чём речь
1
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,621
18.11.2012, 04:00 #5
RocBoy-D, говоря по-простому, оно возьмет "большое" и запихнет в "маленькое". Оно умеет запихивать, и не проверяет что для этого нужно. Не хочешь париться - юзай std::string.
1
18.11.2012, 04:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2012, 04:00
Привет! Вот еще темы с ответами:

Что делает функция strcpy(t, f) - C++
Функция strcpy(t, f) что она делает?

Массивы строк и функция strcpy - C++
#include&lt;iostream&gt; #include&lt;cstring&gt; #include&lt;cctype&gt; using namespace std; int mystrcpy( char *stl ,char *str); int...

дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. - C++
Будьте добры,помогите с решением задачи: дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка...

Не работает функция gets(), strcpy() и другие функции с строками - C++
Подключеные библиотеки все. MVS 2013. #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cctype&gt; using namespace std; int...


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

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

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