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-Key: 319052

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

Printed on: April 20, 2024 at 00:04 o'clock

Mitglied: 131301
131301 Oct 25, 2016 updated at 17:11:07 (UTC)
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ß
Member: rubberman
rubberman Oct 25, 2016 at 19:18:35 (UTC)
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
Member: Protected
Protected Oct 26, 2016 at 10:35:03 (UTC)
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?
Member: rubberman
rubberman Oct 26, 2016 at 11:03:15 (UTC)
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