Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > STRCPY


Автор: Гримм 14.12.2003, 15:48
При написании курсовой столкнулся с такой проблемой:

Код

char *s1,*s2;

s1=".....";

strcpy(s2,s1);


Обыкновенное копирование строк, но дальнейшее изменение t1 приводит к изменению t2.

Я вышел из этой ситуации следующим образом:
Код

char *temp;

s2=temp;

while (*s1!='\0')
{ *temp=*s1; *temp++; *s1++; }

s2[strlen(s2)]='\0';


Но, вопрос заключается в том, как сделать такую функцию, которая бы при таком допустим вызове: fun(&s2,&s1); делала со строками s2 и s1 мой алгоритм?

Автор: _hunter 14.12.2003, 20:32
а в чем проблема оформить твой алгоритм в функцию?
и по-моему &s2 - лишнее ибо массивы и так по ссылкам передаются.

Автор: Гримм 15.12.2003, 00:34
Хорошо, задам вопрос по другому.
Как возвращать несколько параметров из функции?
Массивы не предлагать...

Автор: DENNN 15.12.2003, 10:47
Передавать в функцию не сами переменные, а указатели или ссылки на них.

Автор: Гримм 15.12.2003, 21:37
Ну и как это сделать?
У меня сами переменные - уже ссылки на char!!!
Какconfused.gif?
Может кто-нибудь напишет?

Автор: knave 16.12.2003, 11:45
Так если ты передаеш сылку то то на что она сслыается изменяется вне функции.

Автор: bel_nikita 16.12.2003, 11:59

char A;
char *pA;

void f(char &B)
{
B=58;
}
void f(char *&B)
{
B=58;
}
f(A);
f(pA);
...
// A=58
// pA=58

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)