C++: Länge eines Strings an einem char Pointer? - Seite 3

Seite 3 von 3 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_laenge_eines_strings_an_einem_char_pointer_99683/page_3 - zur Vollversion wechseln!


mat schrieb am 26.11.2003 um 23:08

vom scope. also zB innerhalb nur innerhalb einer funktion gültig.. damit vermeide ich das kopieren ins ds, weil am ende des scopes die vars wieder aus dem stack fliegen.


that schrieb am 26.11.2003 um 23:12

Zitat von Ecraft
char* s1 = "wasweisich";

Gibts hier irgendeinen schmäh wie man die Länge dieses Strings herausfindet ohne die Klassenbibliothek zu verwenden?

klar....

int length = 10;


mat schrieb am 26.11.2003 um 23:17

:D

schneller wäre:

#define STRLEN 10

:)


Ringding schrieb am 26.11.2003 um 23:23

Zitat von mat
vom scope. damit vermeide ich das kopieren ins ds

Also Variante 2. Ins DS muss man nicht kopieren, dort ist der String schon. Auf den Stack müsste man hingegen schon kopieren, und das ist natürlich schwachsinnig, weil langsam.


mat schrieb am 27.11.2003 um 00:10

ich mein ja ned so wies wirklich is.. schon klar, dass static vars ins ds kommen. ich frage mich nur ob es den programmierer wirklich einschränken würde, wenn ein konstanter string nicht statisch, sondern lokal wäre - also genauso wie eine lokale variable, und die wär ja nur im stack.


Ringding schrieb am 27.11.2003 um 00:12

Naja, sowas ist schon ganz nützlich:

Code:
const char *getname()
{
  return "hello";
}


mat schrieb am 27.11.2003 um 00:16

aber in der praxis nicht zu verwenden, weil man hier ein makro machen würde.


Ringding schrieb am 27.11.2003 um 00:27

Dann denk's dir halt so:

Code:
const char *quip(int n)
{
  switch (n) {
    case 7: return "Do not believe in miracles. Rely on them.";
    case 70: return "It is morally wrong to allow naive end users to keep their money.";
    case 666: return "Save a cow. Eat a vegetarian!";
    case 1337: return "My programs don't have any bugs I didn't put there.";
  }
  return NULL;
}


mat schrieb am 27.11.2003 um 00:29

..dachte mir das jetzt sowas kommt :)

IMO ein typischer fall für ein static array, eben etwas explizit deklariertes. na ja, egal.. sowas kann man wahrscheinlich gar ned ausdiskutieren, weils immer 100 verschiedene möglichkeiten gibt. :)

add: ausserdem is sowas hardgecodet ein böses nono ;)


funka schrieb am 27.11.2003 um 00:48

der typ wollt eigentlich nur buchstaben zaehlen


Ringding schrieb am 27.11.2003 um 01:35

Das war nicht interessant genug :p Aber anregend war's offensichtlich :D


disposableHero schrieb am 08.12.2003 um 16:04

zu den 100en möglichkeiten kommt dann (oder doch scho vorher) die frage der performance hinzu




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026