Передача строки в функцию и возврат строки как результата - C (СИ)
Формулировка задачи:
Короче товарищи замучился я со строками в си, поскольку перешел из delphi там с этим проблем нет. И меня собственно интересует такая штука как передача в функцию и возврат из функции строк.
мой багаж знаний видемо еще оч. мал и я так понимаю что единственный способ это передавать указатели на данные.
вот например delphi приведу пример все просто
вызывать само собой примерно так
на си не могу кроме как взять адрес массива типа char s[50];
объясните подробно как вы справляетесь этим гемором
function A(str: string): string; begin end;
s: string;
s:=a('бла бла бла');Решение задачи: «Передача строки в функцию и возврат строки как результата»
textual
Листинг программы
void StrOut(char * String) { char Str[] = "bla-bla-bla"; memcpy_s(String, MaxLengthOfString, Str, strlen((char*)Str)); }
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Объявляется функция
StrOutс типом возвращаемого значенияvoidи одним аргументом типаchar * String. - Внутри функции объявляется локальная переменная
Strтипаcharс фиксированным размером в 11 символов. - Значение переменной
Strприсваивается строкеbla-bla-bla. - Используется функция
memcpy_sдля копирования строки из локальной переменнойStrв аргумент функцииString. - В качестве первого аргумента функции
memcpy_sиспользуется переменнаяString, вторым аргументом -MaxLengthOfString, третьим -Str, четвертым -strlen((char*)Str). - Функция
memcpy_sкопирует строку до первого нулевого символа, но не более указанного размера строки. - Функция
StrOutвозвращает пустую операцию (void).