Return eines Strings und "Overflow" Error
-
Swordfish schrieb:
dub di dub.
#include <cstddef> #include <cctype> #include <string> #include <iostream> std::string rotate( std::string const & str, std::size_t offset ) { std::string dst; for( auto ch : str ) { if( std::islower( ch ) ) dst += 'a' + ( ( ch - 'a' + offset ) % ( 'z' - 'a' + 1 ) ); else if( std::isupper( ch ) ) dst += 'A' + ( ( ch - 'A' + offset ) % ( 'Z' - 'A' + 1 ) ); else dst += ch; } return dst; } int main() { std::string input; std::cin >> input; for( std::size_t i{}; i <= 'z' - 'a' + 1; ++i ) std::cout << rotate( input, i ) << '\n'; std::cout.put( '\n' ); }
-
Danke für die Hilfe!
Eine frage hätte ich aber noch,
wieso krieg ich denn ne fehlermeldung bei Entschluesselt=Entschluesselung(..); wenn ich entschluesselt als chararray deklariere, aber keine weil ich eig bei entschlue3sselung nen std::string returnen sollte, aber dort nen chararray returne?
-
Arrays können nicht zurückgegeben werden, genauso wenig wie du Arrays einander zuweisen kannst.
Deshalb wurde std::string erfunden.
-
Danke !
-
Insgesamt werden die eingebauten Arrays nie gebraucht, eher werden dynamische Container wie vector und string benutzt, für statische Sachen gibt es std::array.