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


Автор: americanets 18.8.2008, 11:00
как из функции вернуть строку, например у меня функция манипулирует текстом, нужно результат передавать в другие функции , как это сделать  ? 
Код


my_function (){

***
Text = "sfsdfsdfsdf sdf sdf";
return Text;

}

Автор: yar 18.8.2008, 11:02
Код

std::string my_function (){
    std::string Text = "sfsdfsdfsdf sdf sdf";
    return Text;
}

Автор: bsa 18.8.2008, 11:10
americanets, зависит от языка программирования. Способ, приведенный yar, соответствует языку С++. На языке Си нужно писать так:
Код
char *my_function(char *buffer, size_t size) //buffer указатель на буфер, size - его размер
{
   strncpy(buffer, "sfsdfsdfsdf sdf sdf", size);
   return buffer;
}

Автор: americanets 18.8.2008, 11:30
спасибо , все понятно 

Автор: americanets 19.8.2008, 09:13
что то не до конца понятно все таки

делаю так 

Код

#include <iostream>

std::string test();

void main() {

std::cout<<test();

}

std::string test() {

std::string Text;
Text = 'gfgdgdfg';

return Text;

}



в итоге печатает только первую букву 

g  

Автор: IKM2007 19.8.2008, 09:27
Код

Text="gfgdgdfg";

а не
Код

Text = 'gfgdgdfg';


Добавлено@

Еще не подключил <string>.

Автор: americanets 19.8.2008, 10:03
IKM2007, 

да, вот так все работает , спасибо
Код


#include <iostream>

std::string test();

int main() {
  std::cout<<test()<<std::endl;
  return 0;
}

std::string test() {
  std::string Text;
  Text = "gfgdgdfg";
  return Text;
}


Добавлено через 7 минут и 45 секунд
Цитата(IKM2007 @  19.8.2008,  10:27 Найти цитируемый пост)
Еще не подключил <string>.


у меня без него сейчас все скомпилилось без ошибок, все работает

компилятор g++ ОС Suse

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