Передача строки в функцию и возврат строки как результата - 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
).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д