protected
Goto Top

String einlesen in Array und wieder ausgeben von hinten

Hallo,

ich würde gerne einen String einlesen bzw. char und dann andersrum wieder ausgeben.

Also: Otto Maoam zu: maoaM ottO

Mein Code bisher, komme aber nicht weiter..

#include <iostream>
#include <string>

using namespace std;
int main() {


	string eingabe;
	cout << "Bitte geben Sie die Zeichenkette ein: ";  
	cin >> eingabe;


	char ein[eingabe.length];

	ein = eingabe;

	for (int i = 0; i <=eingabe.length; --i) {
		cout << ein[i];
	}

	
	system("PAUSE");  
	return 0;

}

Content-ID: 319052

Url: https://administrator.de/contentid/319052

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

131301
131301 25.10.2016 aktualisiert um 19:11:07 Uhr
Goto Top
Zitat von @Protected:
for (int i = 0; i <=eingabe.length; --i) {
Wohl noch kein Kaffee heute gehabt face-smile
Von 0 eins abziehen geht ins Negative face-wink. Also musst du i mit dem größten Index initialisieren (eingabe.length) und i >=0 in der Bedingung setzen.

Alternativen gibt's einige
http://stackoverflow.com/questions/19712903/reverse-contents-in-array

Gruß
rubberman
rubberman 25.10.2016 um 21:18:35 Uhr
Goto Top
Hallo Protected.

Abgesehen von der falschen Schleife ... Du liest in einen std::string ein. Was willst du dann noch mit einem char-Array? Wenn du mit C++ arbeitest, dann nutze doch auch dessen Vorzüge.
#include <algorithm>
...
std::reverse(eingabe.begin(), eingabe.end());
...

www.cplusplus.com/reference/algorithm/reverse/

Grüße
rubberman
Protected
Protected 26.10.2016 um 12:35:03 Uhr
Goto Top
Hallo,

Ich möchte es gerne am besten ohne Funktionen programmieren. Ich habe es soweit hin bekommen. Das einzige was nicht funktioniert ist, wie überhebe ich meinen array den getline wert?
rubberman
rubberman 26.10.2016 um 13:03:15 Uhr
Goto Top
Hallo Protected.

Auch dann brauchst du das Array nach wie vor nicht. Du kannst mit dem Operator oder mir der at() Memberfunktion auf die einzelnen chars in deinem string zugreifen.

Wenn du unbedingt vorher kopieren willst, dann musst du C bemühen (<cstring> einbinden).
Die Memberfunktion c_str() der string Klasse liefert dir einen konstanten Pointer auf char. Mit std::strncpy() kannst du die angegebene Anzahl chars in dein Array kopieren.

Grüße
rubberman