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.
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
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:-(
@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
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.
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);
}
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);
}

