Anzahl der Zeichen eines Strings ermitteln
-
Bei mir gibts keine Probleme.
hmm ich hab aber auch VC++ sondern Dev-C++ mit dem MinGW Compiler (g++ 3.3.1)
Zeig mal deine Fehlermeldungen..
-
es kommen immer so meldungen wie
'std' : Keine Klasse oder Namespace
'string' : nichtdeklarierter Bezeichner
Syntaxfehler : Fehlendes ';' vor Bezeichner 'der_string'
usw..
-
sicher, dass du #include <string> da stehen hast? welchen compiler benutzt du?
-
otze schrieb:
sicher, dass du #include <string> da stehen hast? welchen compiler benutzt du?
Er benutzt MFC daraus schließe ich mal VC++
Die frage ist nur welches..
Warscheinlich VC++6.0 Autorenversion
MfG
-
kann es sein, dass der namespace std nicht eingebunden wurde:
using namespace std;
??
mfg arni
-
arni schrieb:
kann es sein, dass der namespace std nicht eingebunden wurde:
using namespace std;
??
Nein, das braucht man nicht da mein code via "std::" auf den Namespace zugreift,
daher kann man das weglassen.
MfG
-
warum schreibst du das in dieser Art ?
Hat es einen bestimmten Grund und welchen Vorteil hat es?
Oder war das jetzt nur so in dem Beispiel?
-
Ich habe mir das angwöhnt um keine Namens konflikte zu bekommen
Beispiel:
Hier kommt es zu einem Namenskonflikt:#include <string> using namespace std; class string { public: string(); ~string(); void do_foo(); }; int main() { string blub; // Welcher ? Meiner oder der aus dem Header ? }
Hier kommt es nicht zu einem Konflikt:
#include <string> class string { public: string(); ~string(); void do_foo(); }; int main() { string blub; // Meiner std::string foobar; // der aus dem Header }
Das waren auch nur Beispiele, ich verwende desweiteren auch andere C++ Libs die ihren namespace haben z.B. sigc++, boost oder u.a. Gtkmm
Da kann es z.B. vorkommen das 2 Funktionen / Klassen den selben Namen habenWenn ich dann:
using namespace std;
using namespace boost;schreibe kommt es zu konflikten.
Ausserdem ist für den Leser des Codes genau erkennbar woher die Funktion/Klasse
stammt.MfG
-
Wenn ich dann:
using namespace std;
using namespace boost;schreibe kommt es zu konflikten.
lol, nein nicht wirklich. boost ist als ergänzung zur std entwickelt worden, deshalb wird man die Namen dort auch sorgfältig ausgewählt haben. Gegen using spricht eigentlich nicht viel, weil man im Notfall immer noch genau die Namen, die nicht eindeutig sind, qualifizieren kann.
Nur in Headern sollte man es keinesfalls benutzen.
-
kapiert.
Danke für die ausführliche Erklärung.apropos boost : gibts irgendwo im Netz eine Art referenz 'Boost für Dummies'?
danke
arni
-
Optimizer schrieb:
Wenn ich dann:
using namespace std;
using namespace boost;schreibe kommt es zu konflikten.
lol, nein nicht wirklich. boost ist als ergänzung zur std entwickelt worden, deshalb wird man die Namen dort auch sorgfältig ausgewählt haben. Gegen using spricht eigentlich nicht viel, weil man im Notfall immer noch genau die Namen, die nicht eindeutig sind, qualifizieren kann.
Nur in Headern sollte man es keinesfalls benutzen.Das war ein Beispiel!
-
wieder mal was über namensbereiche gelernt ,-)
ich hab die header 100% eingebunden, und ich hab visual studio 6
(sitz ja in ner firma und versuch das zu lernen)will das jetz ganz einfach machen...
z.b. so:
for (i = 0; i < länge_des_strings; i++)
{
if(str[i] == '\n')
{
ausgabe;
}
}so würds ja theoretisch gehen... oder gibts irgendwelche bedenken?
-
hier stand ein sch***