Buchstaben sortieren

Ein String besteht aus Zeichen (chars). Auch genannt Zeichenkette. Diese wird Nullterminiert, um das Ende des Strings zu kennzeichnen. Sonst wäre der Umgang mit Zeichenketten extrem umständlich.
C++:
char string[]="Das ist ein String!";
wäre z.B. ein String.
C++:
char string[4] = {'a', 'b', 'c', 0};
auch.

Unter C++ wird die Stringbearbeitung durch std::string realisiert, was das ganze wesentlich vereinfacht.
 
Ok, und wie schreibe ich so einen String, wo ich 10 beliebige Buchstaben habe?

Also zunächst:
du hast mehrere Möglichkeiten. entweder du nimmst ein char array,
Code:
char Name[Groesse] // typ: "char", name: "Name", "Groesse" gibt an, wie viele Zeichen das Array aufnehmen kannn.
du musst allerdings beachten das das Array immer bei 0 beginnt. also
name[0] ist das erste Element.
Das letzte Element ist IMMER "Groesse - 1".
d.h.:
Code:
char Testarray[500] // dieses Array geht von "Testarray[0]" bis "Testarray[499]"
Die nächste Möglichkeit wäre die klasse "string" zu includen und diese zu benutzen, was ich für vorteilhaft halte, weil du schon viele funktionen zur manipulation zur verfügung hast.
Code:
#include "string"
#include "iostream"
int main{
std::string stringname;
std::cin >> stringname;   // wenn du f eingibst wird f ausgegeben, ist deine Eingabe "Tutorial" wird auch das ausgegeben.
std::cout << stringname;
return 0;
}

greeetz

Edit: - da war ich wohl zu langsam ;-)
 
gib ma nen beispiel: char Name[2].
bitte komplett, denn ich hab gelesen, das man dann alle einzeln hinschreiben muss, weiß aber nit wie das geht
 
Zuletzt bearbeitet:
also gut.

Code:
char GutenTag[11]; // so erstellst du ein Array mit 11 Elementen vom typ char, jedes speichert ein Zeichen.

char GutenTag[0] = 'H';
char GutenTag[1] = 'a';
char GutenTag[2] = 'l';
char GutenTag[3] = 'l';
char GutenTag[4] = 'o';
char GutenTag[5] = ' ';
char GutenTag[6] = 'W';
char GutenTag[7] = 'e';
char GutenTag[8] = 'l';
char GutenTag[9] = 't';
char GutenTag[10] = '!';

jetzt hast du das Array vollgeschrieben.

wenn du es wieder ausgeben willst, und dir etwas schreibarbeit erleichtern willst, gebe ich dir den Tip es mit einer for-Schleife zu realisieren.

greetz
 
Zuletzt bearbeitet:
ich möchte jetzt den benutzer was eingeben lassen. da kann ich doch so schreiben.

char Name[10];
cout<<"Bitte einen Namen eingeben.";
cin>>Name;
 
ich möchte jetzt den benutzer was eingeben lassen. da kann ich doch so schreiben.

char Name[10];
cout<<"Bitte einen Namen eingeben.";
cin>>Name;

ja, in der Theorie ist das wohl nicht zu beanstanden ;)

Wenn der Name des Benutzers allerdings 12 Buchstaben lang ist hast du ein Problem, denn die restlichen 2 Zeichen befinden sich immernoch im Eingabepuffer.

wenn du möchtest das maximal 10 Zeichen eingegeben werden können ist es sinnvoll wenn du das hier schreibst.
Code:
char Name[10];
cout<<"Bitte einen Namen eingeben.";
cin>>Name;
cin.clear();  // so leerst du den Eingabepuffer.

wenn du allerdings möchtest das der Benutzer seinen Namen ganz eingeben kann würde ich dir wieder zur string stl raten.
Beispiel:
Code:
#include "string"
#include "iostream"
int main{
std::string Vorname;
std::cin >> Vorname;
std::cout << "Hallo " << Vorname << ", Willkommen in meinem Programm!"
return 0;

hoffe ich konnte dir weiterhelfen ;)

greetz
 
Wasn Quatsch ... bitte nicht immer Halbwissen hier posten!

clear setzt die error state flags zurück. Aber damit leerst du bestimmt keinen Buffer!
Was du machen kannst ist:
C++:
template<class char_type, class char_traits>
std::basic_istream<char_type, char_traits>& flush(std::basic_istream<char_type, char_traits>& in)
{    return in.ignore(std::numeric_limits<std::streamsize>::max(), in.widen ('\n')); }
damit räumst du sauber auf ;)
 
ich hab nun anstatt der variablen "char name" dies als array "char name[10]" genommen und es funktioniert prächtig. Danke für eure Hilfe:)
 
hier mal ein billiger sortier algorithmus der allerdings sehr lamgsam ist und deswegen einer der schlechtesten aber für den anfang total aktebtabel und leichtverständlich denke ist der richtige für dich:
Code:
include "stdafx.h"
#include "stdlib.h"
#include "iostream"

using namespace std;


int main()
{
	system("TITLE Sortier-Algorithmus");

	int len=20, buffer, i=0, j=1;
	int vektor[]={23,12,45,26,76,88,123,2,34,56,0,98,45,64,23,78,8,82,50,20};

	for(i=0; i<len; i++)
	{
		for(j=0; j<len; j++)
		{
			if(vektor[i]<vektor[j])
			{
				buffer=vektor[i];
				vektor[i]=vektor[j];
				vektor[j]=buffer;
			}
		}
		j=0;
	}

	for(i=0; i<len; i++)
	{
		cout<<vektor[i]<<" ";
	}

	cout<<endl;
	system("PAUSE");
	return 0;
}
 
Zurück