BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C++ Einzelnes Zeichen eines AnsiStrings » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Einzelnes Zeichen eines AnsiStrings
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Counie Counie ist männlich
Neuling

Dabei seit: 19.06.2002
Beiträge: 8

Einzelnes Zeichen eines AnsiStrings       Zum Anfang der Seite springen

Kann mir jmd. sagen, wie ich bei nem AnsiString eine bestimmte Position auslesen kann!?!?

Allso z.B. das mir das Programm sagt, die 3.Position von "hallo" ist ein "l" !?!?

Danke, Counie
27.10.2002 19:00 Counie ist offline E-Mail an Counie senden Beiträge von Counie suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

Achtung       Zum Anfang der Seite springen

Strings werden in C/C++ doch behandelt wie Arrays vom Typ Character. Ergo müsste es wie in folgendem Beispiel bei dir funxen:

code:
1:
2:
3:
4:
5:
6:
7:
8:
#include <stdio.h>

int main()
{
  char Hallo[] = "hallo";
  printf("%c",Hallo[3]);
  return (0);
}

Hallo[3] gibt dir also das 4. Zeichen (Arrays fangen bei 0 an) innerhalb von Hallo aus.

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von LX: 27.10.2002 19:46.

27.10.2002 19:43 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
Counie Counie ist männlich
Neuling

Dabei seit: 19.06.2002
Beiträge: 8

Themenstarter Thema begonnen von Counie
      Zum Anfang der Seite springen

Ne, das geht irgendwie auch nich.
Ich beschreibs mal näher:

Ich habe 2 Eingabefelder (Edit1 und Edit2)
in Edit1 schreibe ich irgendeinen Satz und speichere den den in einer Variablen

...


Ansistring e1 = Edit1 -> Text;
AnsiString ein_wort = "";
for(i=0; i<6; i++)
{
ein_wort + e1[i];
}
Edit2->Text = ein_wort ;


doch entweder es kommen irgendwelche Fehlermeldungen oder
das Programm stürzt ab.

Kann es sein, dass der dadurch nich ne Position überprüft, sondern denkt, es wären mehrere "e1" deklariert worden ???
27.10.2002 20:09 Counie ist offline E-Mail an Counie senden Beiträge von Counie suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Was ist überhaupt AnsiString ?
Meinst du damit STL ansistring ?
Und welche Grafische Oberfläche benutzt du ? (VCL, MFC oder WinApi ?)

www.c-plusplus.de/forumstart.htm
^kann ich in sachen C++ nur empfehlen...

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
27.10.2002 20:24 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

Achtung       Zum Anfang der Seite springen

Ansistring als Datentyp sacht mir jetzt zugegebenermaßen nix. Aber
code:
1:
2:
3:
4:
for(i=0; i<6; i++)
{
ein_wort + e1[i];
}
wird so nicht viel bringen. Wenn, dann müsste es
code:
1:
ein_wort += e1[i]
sein. Wenn du allerdings nur einen Ausschnitt eines Strings in einen anderen kopieren willst, dann gibt es dafür auch vorgegebene Funktionen (strcpy() soweit ich mich erinnere).

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

Dieser Beitrag wurde 6 mal editiert, zum letzten Mal von LX: 27.10.2002 20:37.

27.10.2002 20:33 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
HeaD HeaD ist männlich
Hoffnungsloser Sozialfall in Behandlung bei Styx


images/avatars/avatar-2266.gif

Dabei seit: 31.08.2001
Beiträge: 4.142
Herkunft: Mama

      Zum Anfang der Seite springen

Das ist doch nicht ANSI C oder ?? Ich kenne Ansistring nur vom C++ Builder also VC oder so...
Ansistring und Char ist was anderes soweit ich weiß und kann auch nicht gleich behandelt werden, soweit ich weiß Augen rollen

__________________

27.10.2002 20:40 HeaD ist offline E-Mail an HeaD senden Homepage von HeaD Beiträge von HeaD suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Der Code gibt aber nur das Zeichen an der 6. Stelle des
Strings aus, und wenn dein String kürzer ist, dann ...

code:
1:
2:
3:
4:
5:
for(i=0; i<6; i++)
{
ein_wort=+ e1[i];
}

ergebnis davon währe du kopierst den String in ein_wort.
Bufferoverflow, da der String ja schon vorher endet...
Wenn du nur den Buchstaben haben willst, muss es heissen:

code:
1:
ein_wort = e[i];


Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von phlox81: 27.10.2002 20:49.

27.10.2002 20:43 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Counie Counie ist männlich
Neuling

Dabei seit: 19.06.2002
Beiträge: 8

Themenstarter Thema begonnen von Counie
      Zum Anfang der Seite springen

jo, leider.
Ich programiere es mit dem Borland c++ Builder

Und da gibt es halt bei Fenster-Anwendungen statt dem normalen String, den AnsiString
Bei dem geht es auch mit dem + statt =+
aber ich hab mir alle Methoden für den String angeschaut und keine kann mir den Buchstaben an einer Position ausgeben ??
27.10.2002 20:51 Counie ist offline E-Mail an Counie senden Beiträge von Counie suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Hmm, gibts da keine GetAt funktion?
bei CString ist das die Function dafür.
und ansistring ist das Equivalent dazu in der VCL.

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
27.10.2002 20:54 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Counie Counie ist männlich
Neuling

Dabei seit: 19.06.2002
Beiträge: 8

Themenstarter Thema begonnen von Counie
      Zum Anfang der Seite springen

ich hab drauf geachtet, dass ich mehr als 6 Zeichen eingebe und hab auch ne Überprüfung gemacht, ohne die er das ganze gar nicht macht.
code:
1:
2:
3:
4:
5:
6:
if(e1.Length() > 6)
{
...
}
27.10.2002 20:55 Counie ist offline E-Mail an Counie senden Beiträge von Counie suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Also ich progge zwar auch C++, aber mit dem MS VC
und MFC, kenne mich also nicht mit dem Builder aus
und auch nicht mit der VCL, falls du fragen haben
solltest, kannst du sie hier stellen :
http://www.c-plusplus.de/ubb/cgi-bin/ult...i?ubb=forum&f=2
Oder mal in die VCL Faq von unserem Forum schaun:
http://www.c-plusplus.de/ubb/cgi-bin/ult...?ubb=forum&f=19

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
27.10.2002 21:00 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C++ Einzelnes Zeichen eines AnsiStrings

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH