Witam, mam funkcje zwracającą ciąg znaków, jak ma je zwracać?
char *read() ???
[co_tu_ma_być] read()
{
//pobieranie tekstu do wskaźnika
return *wskażnik;
}
char[] tekst = read();
cout << tekst;
???
Witam, mam funkcje zwracającą ciąg znaków, jak ma je zwracać?
char *read() ???
[co_tu_ma_być] read()
{
//pobieranie tekstu do wskaźnika
return *wskażnik;
}
char[] tekst = read();
cout << tekst;
???
Zwracać ciąg znaków możesz normalnie przez return, np:
return "taki sobie ciag";
lub
char* a = "haha";
return a;
Czyli kompletny przykład może być taki:
#include <iostream>
const char * napis();
int main()
{
const char* napisik = napis();
std::cout << napis() << std::endl;
std::cout << napisik << std::endl;
}
const char * napis(){
char* a = "napis sobie taki";
return a;
}
Przed char* daje się const, ponieważ literałów (stałych) napisowych się nie modyfikuje. Na przyszłość - kod formatuj w jakimś środowisku programistycznym, potem wklejaj na forum, a potem zawieraj je w odpowiednich znacznikach, a ewentualne pytajniki zamieszczaj w komentarzach.
const char * napis(){
char* a = "napis sobie taki";
return a;
}
Wykorzystam to, dzięki
Nie byłoby błedem gdybyś tego consta tam nie dał, ale funkcje zwracające napis bez consta są zdeprecjonowane. Napisów się nie zmienia i traktuje się je jako stałe, wiec i wskaźnik powinien być zwracany na stałą, stąd jest const.
Ja i tak bym użył stringa, a nie C-stringa. Jedyny przypadek w którym używam tego drugiego, to stare funkcje biblioteczne, które wymagają C-stringa jako argument.