Einige Fragen
- 
					
					
					
					
 Hallo! Ich habe da einige Fragen zu C++ betreffend: 1. Wie kann man denn in C++ sowas wie ein substring()(wie bei JavaScript) erzeugen? 2. Gibt es diese 3 JavaScript-Funktionen auch in C++-Form: charCodeAt(), fromCharCode(), Unescape()? Wenn nicht, wie realisiert man dann sowas? Das war es erstmal. Ich weiß das sind viele Fragen, aber ich hoffe ihr könnt mir helfen. 
 
- 
					
					
					
					
 Von was für Strings redest du? Char* oder std::string oder was ganz anderes? 
 
- 
					
					
					
					
 Ich meine die char* - Strings. 
 
- 
					
					
					
					
 Einen Sub-String wuerde ich so bauen: char *SubString (const char *szIn, int iStart, int iLength) { char pReturn = NULL;; int iSize = -1; iSize = strlen (szIn); iSize -= iStart; iStart++; pReturn = (char *) calloc (sizeof (char), iSize); strcpy (pReturn, &szIn [iStart]); pReturn [iLenth] = '/0' return pReturn; }Noch zu sagen: Es muessten noch ein paar Checks auf NULL-Pointer, Stringlaenge etc. eingefuehrt werden und der Speicher muss natuerlich spaeter wieder freigegeben werden. 
 
- 
					
					
					
					
 edit: *moep* Post kann weg, hab oben was falsch gelesen 
 
- 
					
					
					
					
 Wir sind doch im C++ Forum und nicht im Java Forum, oder nicht? 
 
- 
					
					
					
					
 Kagge mein Firefox meinte grade er muss mir nen Speicherfehler ausgeben -.- - 
Verwende doch besser aussagekräftige Namen für dein Topic wie z.B. "spezielle Stringfunktion gesucht". 
- 
In C++ macht man sowas eigentlich nicht mehr mit char*. Da verwendet man fast immer std::string (oder eine andere Stringklasse). 
- 
substr() 
 // Für C++ std::string text = "Hallo Welt!"; std::cout << text.substr(0, 5); // Für C void substr(const char* string, char* sub, int begin, int len = -1) { string += begin; while(len-- && *string) *(sub++) = *(string++); *sub = 0; } char text[] = "Hallo Welt!"; char hallo[6]; substr(text, hallo, 0, 5); printf("%s", hallo);- charCodeAt()
 // Für C++ std::cout << static_cast<int>(text[pos]); // Für C++ mit Bereichsüberprüfung std::cout << static_cast<int>(text.at(pos)); // Für C printf("%d", text[pos]);- 
Die komische Funktion die Zahlen zu nem String macht: Langsam sollte der gelernte Leser bemerken dass ein CHAR auch nur eine ZAHL ist und dass man so jedem Zeichen die Zahl zuweisen kann... (Tipp: Verwende das = Zeichen) 
- 
Keine Ahnung was die andere Methode macht. 
 
 
- 
- 
					
					
					
					
 MBCS-CITP schrieb: Einen Sub-String wuerde ich so bauen: char *SubString (const char *szIn, int iStart, int iLength) { char pReturn = NULL;; int iSize = -1; iSize = strlen (szIn); iSize -= iStart; iStart++; pReturn = (char *) calloc (sizeof (char), iSize); strcpy (pReturn, &szIn [iStart]); pReturn [iLenth] = '/0' return pReturn; }Um Karls Zitat etwas umzuformulieren: wir sind doch im C++ Forum und nicht im C Forum! Absolut grausamer Code für C++ Verhältnisse. Bitte schnell vergessen. karl05 schrieb: Ich meine die char* - Strings. Sofern es keinen wirklich triftigen Grund gibt, verwerfe diesen Gedanken und benutze std::string bzw. std::wstring. Einen Sub-String erhält man mit der Methode substr(). charCodeAt wäre dann einfach Indexierung, zB std::string a = "hallo"; char b = a[2]; char c = a.at(2); // exception-sichere VarianteEin Äquivalent zu fromCharCode gibt es afaik nicht, da variable Argumentlisten in C++ nicht unbedingt zum guten Stil gehören. Hier kann man sich aber mit anderen Mitteln behelfen, zB zeichenweiser Konkatenation. std::string a = 'h'; a += 'a'; a += 'l'; a += 'l'; a += 'o'; // oder std::string b = std::string('h') + 'a' + 'l' + 'l' + 'o';Unescape gibt es zwar nicht, sowas kann man sich aber relativ schnell selbst basteln. Sind maximal 5 Zeilen Code.