Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

1

18.07.2005, 09:04

Strings vergleichen

Mal wieder meine ungenügenden C Kenntnisse -.-

C-/C++-Quelltext

1
2
if (pcPfad != "THIS")
    lalala...

Das möchte ich überprüfen, es wird aber immer lalala ausgeführt, auch wenn pcPfad "THIS" ist, bzw die ersten 4 Buchstaben, denn pcPFad wird vorher als new char[255] deklariert.. Mit welcher C-Funktion kann ich denn überprüfen ob der String in dem anderen enthalten ist, bzw an welcher Posi? Ich habe es so versucht:

C-/C++-Quelltext

1
2
if (sscanf(pcPfad, "THIS"))
    lalala...

Aber das funktioniert auch nicht (bin mir auch nicht sicher ob die Funktion die Richtige ist.. die Hilfe gibt bei den I/O Routinen nur wenig Aufschluss)
Wie mache ich es richtig?

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

2

18.07.2005, 09:10

:ohoh:

Hmmm ok, nochmal. Ein char ist ein Zeichen. Ein char[255] ptext ist eine Kette von 256 Zeichen auf dem Speicher. ptext ist dabei der Zeiger der auf den Speicher ziegt, also die Addresse. Eine Adresse ist nicht der Inhalt!

einen String setzen kannst du mit

Quellcode

1
sprintf(pcString, "Das ist der Text in pcString");

oder

Quellcode

1
strcpy(pcString, "Das ist der Text in pcString");


vergeichen klann man mit

Quellcode

1
strcmp(pcString, "Das ist der Text in pcString")


Wenn 0 zurück gegeben wurde sind die Strings identisch.


Aber vielleicht solltest du einfach den typ sting in der Stnadartbibo verwenden?

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

3

18.07.2005, 09:13

ok danke , das sollte reichen :)
Den Typen kann ich nicht mehr wechseln, weil char inzwischen schon fester Bestandteil meiner Klassen ist, das wäre zuviel Arbeit.

Btw new char[255] ist eine 255 Zeichenkette, nicht 256. Von 0 bis 254

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

4

18.07.2005, 09:21

ja ich nehme auch nicht dieses "string" Kam, sondern auch immer charcters. Is schon ok. aber warum wissen so viele damit nicht umzugehen? Neuerdings? :angel:

BTW hast Recht, is mir garnicht aufgefallen :) man ich werde alt!

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

5

18.07.2005, 09:22

Ka aber bei mir war das schon immer bzw, so bzw ich hab es noch nie richtig gelernt.. Ich muss unbedingt noch The C Programming Language zuende lesen :D

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

6

18.07.2005, 09:23

Hmmm... naja, egal jetzt weisstes ja... vielleicht FAQ damit man neue Member wieder so richtig vollnöhlen kann? :D

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

7

18.07.2005, 11:48

wegen nem strcmp? Oo das steht in jedem C++ Buch was ich habe...
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

8

18.07.2005, 12:44

Mir gehts doch nur um das vollnöhlen ;) Aber eigentlich... ne brauchst nicht in FAQ :D

Werbeanzeige