Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

String in C++





Frage

Leute weis jemand wie ich zum Beispiel das 3 Zecihen in einem String auslesen kann? z.B char MeinString= "Test"; char String3; Nun möchte ich, dass er mir nur in die Variable String3 das s reinschreibt. Danke im voraus

Antwort 1 von Huutsch

Zunächst muß Deine Deklaration heißen:
char MeinString[]= "Test";
weil sonst nicht alle 5 Zeichen (eine 0 muß dranhängen als Endezeichen) reinpassen.

Dann geht das ganz einfach:
String3 = MeinString[2];

In C und C++ fangen die Arrays bei 0 an zu zählen und mit [#] kann man auf jedes einzelne Element des Arrays zugreifen.
Ein String (egal ob char* oder char ...[]) ist ein Array von char.

Übrigens, die Zeichen [ und ] lassen sich hier schwer erkennen, das sind eckige Klammern.

Antwort 2 von TommyHamburg

Hi Anfänger,
wenn Du wirklich Anfänger bist, dann solltest Du Dich erstmal nicht mit nullterminierten Strings rumschlagen, sondern lieber C++ und die Klasse String verwenden. Dann sieht Dein Programm so aus:

include <string>
void main(){
string MeinString = "Test";
string String3 = MeinString.substr(2,1);

}

Dann steht in der Variable String3 auch nur das s drin.

Gruß
Tommy




Antwort 3 von Anfänger

Hallo Leute danke für die schnellen Antworten.
@Hutsch genau so hab ichs bisher auch immer versucht, nur leider habe ich wahrscheinlich beim Deklarieren von String3 einen Fehler gemacht.
Also ich schreibs nochmal

void main(void)
{
char Eingabe[5]="Test";
char String;
String= Eingabe[2];
printf("Dritter Buchstabe von Test = %s\n", String);
}

Wo liegt jetzt da der Fehler?
Ich hab sowas schon mal vor längerem gemacht, aber weis jetzt nicht mehr wie es geht, und mein C Buch habe ich verliehen:-(

Antwort 4 von Anfänger

Ach bin ich ein doofes Z ich hab bei printf den Fehler gemacht habs schon gesehen ich muss ja %c und nicht %s schreiben, Z
Danke Leute danke ich war mir echt nicht mehr sicher ob ich da was total verkehrt gemacht habe und hab gar nicht an die Kleinigkeit gedacht

Antwort 5 von Huutsch

Schön daß wir drüber geredet haben *lach*
Mal im ernst, oft kommt man selber auf die Lösung, wenn man mal mit jemandem darüber spricht, verstehen muß er das nicht unbedingt. *g*

@Tommy: natürlich sollte man lieber C++ und eine gute String-Klasse nutzen, ist immer einfacher.
Aber wenn man denn nun kein C++ hat, geht eben nur das gute alte C und da ist Stringverarbeitung nun mal nicht enthalten ... leider.

Antwort 6 von Huutsch

Nochawas @Anfänger:

Wenn Du es unbedingt als String haben willst, dann geht auch:
void main(void)
{
char Eingabe[5]="Test";
char String[5]; /* damit es kein Problem gibt */
strcpy (String, Eingabe+2); /* kopieren ab 3. Zeichen */
String[1] = 0; /* Ende nach dem einen Zeichen */
printf("Dritter Buchstabe von Test = %s\n", String);
}