Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Armour

Tripel-As

Dabei seit: 21.02.2009

Beiträge: 216

 

1 Zum Seitenanfang

Donnerstag, 26. August 2010, 14:00

umdrehen von Zahlen/Buchstaben in eigene Funktion "Hilfe" C++

Hallo zusammen, ich wollte ein kleines Programm schreiben, welches Zahlen/Buchstaben umgedreht wieder auswirft, dies ist mit auch gelungen, nur hätte ich das gern als Funktion, aber ich weiß nicht wie ich es anstellen soll?
hier mal der Code:

  Spoiler Spoiler

C/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
using namespace std;

void main(){
	char zahl[100];
	int groesse=sizeof(zahl);
	cin >> zahl;
	for(int i=groesse;i>=0;i--){
		if (zahl[i]<=0){
		//tu nichts!!
		}else{
		cout << zahl[i];
		}
	}
	cout << endl;
}

Hat jemand eine Idee, hab da sowieso ein paar probleme bei Funktionen.
Wissen ist Gratis, Dummheit wird Teuer: Schaust du

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Armour« (26. August 2010, 14:00)

 

c-plusplus

Grünschnabel

Dabei seit: 16.08.2010

Beiträge: 4

 

2 Zum Seitenanfang

Donnerstag, 26. August 2010, 16:40

Also, wenn du sagst cin >> zahl, dann belegst du gleich alle 100 Elemente mit dem eigegebenen Wert, d.h. man würde einfach nichts Besonderes sehen, weil alle den gleichen Wert hätten.

Mein Lösungsvorschlag wäre dieser (ich habe auch noch mal die formalen Unschönheiten entfernt, die du gemacht hast):

C/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;

const int SIZE = 10;

void reverse_chars (char nums[SIZE]);

int main()
{
	char nums[SIZE];
	for (int i=0; i<SIZE; ++i)
		cin >>nums[i];

	reverse_chars(nums);
}

void reverse_chars (char nums[SIZE])
{
	for (int i=SIZE; i>=0; --i)
		if (nums[i] > 0)
			cout <<nums[i] <<'\n';
}


Ich habe jetzt mal gesagt, dass der Array 10 Elemente hat, denn 100 Elemente hintereinander eingeben ist ein bisschen nervig. Ansonsten denke ich ist der Code klar...
Für alle die C++ lernen wollen, gibt's meine Tutorials:
http://c-plusplus.de.tc

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »c-plusplus« (26. August 2010, 16:40)

 

Armour

Tripel-As

Dabei seit: 21.02.2009

Beiträge: 216

 

3 Zum Seitenanfang

Donnerstag, 26. August 2010, 16:48

danke, das sieht doch deutlich angenehmer aus wie meines :whistling: , leider bin ich mit funktionen noch nicht ganz so fix, aber üben üben üben, dann wirds auch mal was ;)
Wissen ist Gratis, Dummheit wird Teuer: Schaust du
 

silence

König

Dabei seit: 28.02.2003

Beiträge: 981

 

4 Zum Seitenanfang

Donnerstag, 26. August 2010, 19:32

Also, wenn du sagst cin >> zahl, dann belegst du gleich alle 100 Elemente mit dem eigegebenen Wert, d.h. man würde einfach nichts Besonderes sehen, weil alle den gleichen Wert hätten.

Das stimmt nicht, cin >> zahl schreibt genau input + 1 Elemente in das Array, werden also "12" eingegeben, so wird {0x31, 0x32, 0x00} geschrieben, der rest der Daten bleibt uninitialisiert.

Edit: Übrigens hat dein Code das Problem, dass er die Zahl Ziffernweise einließt, bequemer aber ist es die Zahl als ganzes angeben zu können.
reverse_chars funktioniert auch nicht allgemein, man sollte die Funktionssignatur in

C/C++-Quelltext

1
void reverse_chars (char *szNums, size_t size)
ändern.

Edit2: Ungetestet, sollte aber laufen:

C/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool reverse_chars ( const char *szInput, const size_t sizeInput, char *szOutput, const size_t sizeOutput )
{
  if ( !szInput || !szOutput || !sizeInput || !sizeOutput )
    return false;

  size_t sizeCopy = sizeInput;
  if ( sizeCopy > sizeOutput )
    sizeCopy = sizeOutput;

  int k=0;
  for ( int i=sizeCopy; i >= 0; i-- )
    if ( szInput[i] )
	szOutput[k++] = szInput[i];

  return true;
}
Aktuell nutze ich: Windows, Linux, MacOS X, Solaris...weil die Welt nicht nur S/W ist!
Blog

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »silence« (26. August 2010, 19:32)

 

Ähnliche Themen