Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 19.10.2004, 11:09 Titel: Bitte helfen! |
|
|
Hi,
ich suche nach einer Funktion die überprüft ob ein bestimmtes zeichen in einem String vorhanden ist.Oder muss ich es mir selbst bastelln? Wenn ja ,dann wie?
Tschüss. |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 19.10.2004, 15:05 Titel: |
|
|
Was für eine "Stringart" verwendest du?
Bei STL-Strings geht das ganz einfach mit find()  _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
PeaceKiller JLI Master

Alter: 36 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 19.10.2004, 15:24 Titel: |
|
|
hab was in der MSDN gefunden: Code: | char *strpbrk(
const char *string,
const char *strCharSet
); |
Parameters hat Folgendes geschrieben: |
string
Null-terminated, searched string.
strCharSet
Null-terminated character set.
Return Value
Returns a pointer to the first occurrence of any character from strCharSet in string, or a NULL pointer if the two string arguments have no characters in common.
|
Code: | #include <string.h>
#include <stdio.h>
int main( void )
{
char string[100] = "The 3 men and 2 boys ate 5 pigs\n";
char *result;
/* Return pointer to first 'a' or 'b' in "string" */
printf( "1: %s\n", string );
result = strpbrk( string, "0123456789" );
printf( "2: %s\n", result++ );
result = strpbrk( result, "0123456789" );
printf( "3: %s\n", result++ );
result = strpbrk( result, "0123456789" );
printf( "4: %s\n", result );
}
|
Output hat Folgendes geschrieben: | 1: The 3 men and 2 boys ate 5 pigs
2: 3 men and 2 boys ate 5 pigs
3: 2 boys ate 5 pigs
4: 5 pigs
|
_________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
 |
HotAcid Super JLI'ler

Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 19.10.2004, 15:33 Titel: |
|
|
du solltest dich an STL im allgemeinen und STL-Strings im besonderen so schnell wie moeglich gewoehnen, sonst machst du dir nur doppelte Arbeit.
die STL bietet dir nicht nur Strings, sondern auch ziemlich viele andere nuetzliche Datenstrukturen uns Algorithmen...
greetz
Felix
PS> klingt irgendwie wie ne dumme Fernsehwerbung  _________________ StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht. |
|
Nach oben |
|
 |
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 20.10.2004, 07:28 Titel: |
|
|
Ich dencke das wird mir weiter helfen.
Ich hab auch schon bemerkt das STL einem das Leben leichter macht,aber es gibts zu wenige Tuts dafür.
Danke für die Hilfe. |
|
Nach oben |
|
 |
Mazze JLI'ler
Alter: 39 Anmeldedatum: 02.01.2004 Beiträge: 145
Medaillen: Keine
|
|
Nach oben |
|
 |
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 21.10.2004, 10:43 Titel: |
|
|
Ist ja alles auf Englisch -ich bin kein Englisch-Freund.
Ich hab schon kompletes STL-Buch als PDF gefunden und es ist auf Deutsch.
http://www.ubreymann.de/stlb.html |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 41 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.10.2004, 12:56 Titel: |
|
|
Au man, als Programmierer oder als person die was mit Computern macht sollte man Englisch als erstes lernen, nix gegen dich aber die Leute die nichts lesen wollen weil es auf Englisch ist kotzen einen echt an  |
|
Nach oben |
|
 |
Zyrian Super JLI'ler

Anmeldedatum: 30.08.2003 Beiträge: 321 Wohnort: Essen Medaillen: Keine
|
Verfasst am: 21.10.2004, 14:24 Titel: |
|
|
ein Großteil der Fachliteratur ist halt auf englisch. man braucht ja kein Uni-Wissen im Bereich Englisch, aber gewisse grundzüge sollten doch vorhanden sein.
Man muss nicht alles wissen, sondern nur, wo man nachschlagen kann  _________________ Schau mir in die Augen, Kleines. |
|
Nach oben |
|
 |
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 21.10.2004, 16:03 Titel: |
|
|
Wegen Englisch:ich hab in der Schule deutsch gelernt(Russland),bin jetzt nur 3,5 Jahre in Deutschland.Das erklärt einiges-oder?
Ich hab mir jetzt listen,vectoren und andere Dinge angeschaut und ausprobiert - einfach geil dieses STL.
Ich hab aber ein Problemchen:wie konvertiere ich std::string zu LPCTSTR?(Es gibt so viele verschiedene Arten von Strings - verwirrend). |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 21.10.2004, 16:09 Titel: |
|
|
Mit der Elementfunktion c_str() kannst du dir von einem STL-String einen ganz normalen C-String (d.h. char Zeiger) zurückgeben lassen
Code: | string mystring="blaa";
char* cstring=mystring.c_str(); |
_________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
xardias JLI Master

Alter: 39 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 21.10.2004, 20:40 Titel: |
|
|
Code: | char* cstring=mystring.c_str(); |
das wird nicht funktionieren.
c_str() gibt einen const char* zurück (deswegen der c prefix).
iirc gibts aber auch die funktion str();
Code: | char* cstring=mystring.str(); |
Oder wenn du cstring nicht bearbeiten möchtest sondern vielleicht nur als dateiname an eine c funktion übergeben möchtest kannst du auch c_str benutzen. (Da bei str() der ganze string kopiert werden muss geht c_str() wesentlich schneller).
Code: | const char* cstring=mystring.c_str(); |
Dann kan man den cstring nur nicht bearbeiten. |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 21.10.2004, 21:13 Titel: |
|
|
xardias hat Folgendes geschrieben: | Code: | char* cstring=mystring.c_str(); |
das wird nicht funktionieren.
c_str() gibt einen const char* zurück (deswegen der c prefix). |
*sfz* Stimmt, hab ich vergessen.
Notfalls typecast...  _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Christian Rousselle Site Admin

Alter: 49 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 21.10.2004, 23:09 Titel: |
|
|
Es gibt kein string.str() und man will auf keinen Fall das const wegcasten, schämt euch. Wenn man was an dem String ändern will, sollte man die string Funktionen nutzen. Ansonsten string.c_str() um an einen const char* zu kommen, z.B. für Funktionen, die ein const char* erwarten. Wenn gar nichts hilft geht auch noch:
Code: |
std::string s = "StringString";
char* p = strdup(s.c_str());
// ...
delete[] p;
|
C. |
|
Nach oben |
|
 |
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 22.10.2004, 10:11 Titel: |
|
|
Danke,jetzt kann ich entlich weitermachen. |
|
Nach oben |
|
 |
|