Zwracanie tekstu przez funkcję
Ostatnio zmodyfikowano 2011-10-22 22:16
kill Temat założony przez niniejszego użytkownika |
Zwracanie tekstu przez funkcję » 2011-10-22 17:58:45 Napisałem coś takiego:
char * OSTRING::d_qmark( char * path ) { int size_a = 1; int size_path = size( path ); char new_path[ size_path - 2 ]; while( path[ size_a + 1 ] != false ) { new_path[ size_a - 1 ] = path[ size_a ]; size_a++; } return new_path; }
Aczkolwiek funkcja zwraca jakieś znaczki.
Gdy zrobię np tak:
char new_path[ 256 ]; char * OSTRING::d_qmark( char * path ) { int size_a = 1; int size_path = size( path ); while( path[ size_a + 1 ] != false ) { new_path[ size_a - 1 ] = path[ size_a ]; size_a++; } return new_path; }
to jest dobrze aczkolwiek nie chce podawać przed funkcją wielkości dla new_path.
Czy mogę to jakoś obejść ?
|
|
DejaVu |
» 2011-10-22 19:15:10 std::string OSTRING::d_qmark( char * path ) { int size_a = 1; int size_path = size( path ); char new_path[ size_path - 2 ]; while( path[ size_a + 1 ] != false ) { new_path[ size_a - 1 ] = path[ size_a ]; size_a++; } return std::string( new_path ); } |
|
kill Temat założony przez niniejszego użytkownika |
» 2011-10-22 19:21:20 niestety jedynie program się wiesza ^.^ |
|
DejaVu |
» 2011-10-22 19:22:37 No to popraw:
return std::string( new_path, size_a - 1 );
Wywołanie natomiast powinno wyglądać tak:
char napis[] = "bla"; OSTRING xx; printf( "%s\n", xx.d_qmark( napis ).c_str() );
|
|
kill Temat założony przez niniejszego użytkownika |
» 2011-10-22 19:30:51 dzięki działa już ^.^ mam jeszcze takie pytano: jak by to zrobić bez wykorzystania biblioteki string ?
|
|
DejaVu |
» 2011-10-22 19:31:50 Dynamiczna alokacja pamięci i potem pamiętanie o jej zwolnieniu. |
|
kill Temat założony przez niniejszego użytkownika |
» 2011-10-22 19:33:03 rozumiem że bardziej opłacalne jest użycie biblioteki string tak ? |
|
Drraven |
» 2011-10-22 19:57:25 IMHO po co klasa (std::string) do takiego celu? Daj new a potem zwolnij to :D |
|
« 1 » 2 |