Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2009, 20:04   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Как перадать в функцию строку?

Чтобы работало как
funcName(s); //где s - строка char[]
так и
funcName("asd");
?
TwiX вне форума Ответить с цитированием
Старый 23.10.2009, 20:08   #2
breate
Пользователь
 
Аватар для breate
 
Регистрация: 30.12.2008
Сообщений: 78
По умолчанию

так и передать

void func(const char &s[]) //func(char s) или func(char *s)... лучше но сложнее через указатель
{
cout<<s;
retutn;
}

для "asd" обязательно const char &s[ ]
Моя работа - Создание сайтов

Последний раз редактировалось breate; 23.10.2009 в 20:09. Причина: уточнение
breate вне форума Ответить с цитированием
Старый 23.10.2009, 20:12   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Я так и делаю с const'ом, но мне кажется это неправильно, я же не могу редактировать s =/

Добавлено:
Да и так ругается =\ Какой прототип у Вашей функции?
Если ставлю
Код:
void typeXY(int, int, const char&);
, то ругается
Цитата:
[BCC32 Error] main.cpp(43): E2034 Cannot convert 'const char *' to 'char'

Последний раз редактировалось TwiX; 23.10.2009 в 20:16.
TwiX вне форума Ответить с цитированием
Старый 23.10.2009, 20:18   #4
breate
Пользователь
 
Аватар для breate
 
Регистрация: 30.12.2008
Сообщений: 78
По умолчанию

определись что ты передаёшь! если тебе нужно изменять создай массив забей его чем тебе надо и изменяй в функции сколько влезет, а если ты хочешь передать "asd"
(func("asd")) это именно и есть const char ибо эта строка уже заложена в коде твоей программы и изменить ты её не можешь, то в функции обязательно должен быть const char!
Моя работа - Создание сайтов
breate вне форума Ответить с цитированием
Старый 23.10.2009, 20:20   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Сделал без конста:

Код:
void typeXY(int, int, char[]);
void typeXY(int xpos, int ypos, char msg[])
{
}
Всё нормально работает вроде
TwiX вне форума Ответить с цитированием
Старый 23.10.2009, 20:22   #6
breate
Пользователь
 
Аватар для breate
 
Регистрация: 30.12.2008
Сообщений: 78
По умолчанию

лучше через указатель!
Моя работа - Создание сайтов
breate вне форума Ответить с цитированием
Старый 23.10.2009, 20:29   #7
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Чем лучше? Если я не ошибаюсь s[] - сюда передаётся указатель первого элемента =\

Пример тогда, с прототипом в студию, где в функцию передаётся строка, в ней изменяется, и на выходе остаётся изменённой - совсем не получается =\

Последний раз редактировалось TwiX; 23.10.2009 в 20:34.
TwiX вне форума Ответить с цитированием
Старый 23.10.2009, 20:44   #8
breate
Пользователь
 
Аватар для breate
 
Регистрация: 30.12.2008
Сообщений: 78
По умолчанию

нет делается копия массива в стеке, причём массив статический а в *str действительно передаётся указатель на первый элемент
Моя работа - Создание сайтов
breate вне форума Ответить с цитированием
Старый 23.10.2009, 20:46   #9
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Так можно ли увидеть
Цитата:
Пример, с прототипом, где в функцию передаётся строка, в ней изменяется, и на выходе остаётся изменённой - совсем не получается =\
?
TwiX вне форума Ответить с цитированием
Старый 23.10.2009, 21:18   #10
breate
Пользователь
 
Аватар для breate
 
Регистрация: 30.12.2008
Сообщений: 78
По умолчанию

void func(char &a[]) ; или

char *a=new char [кол во элементов]

voif func(char *a); - и строку меняешь как хочешь
Моя работа - Создание сайтов
breate вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как автоматизировать функцию? MilanAC Помощь студентам 2 13.08.2009 15:11
Как вызвать функцию? blackstersl Общие вопросы Delphi 10 07.06.2009 19:22
Как при нажатии на строку в Listbox передавать нажатую строку в переменную Михаил Юрьевич Общие вопросы Delphi 5 16.03.2009 12:59
оформить как функцию arturka Помощь студентам 11 20.06.2008 23:41
Как создать обратную функцию, которая из уникального номера будет возвращать строку? SkAndrew Общие вопросы Delphi 8 06.04.2008 21:10