2dimensionales Array

Gast #1399129
Lesenswert?

Die werden auch String-Arrays genannt, obwohl es in C und C++ keinen 
eigenen Datentyp "string" gibt. Das mit der \0 zum Schluss hat einen 
guten Grund. Es gibt einen ganzen Haufen String-Funktionen in C und C++ 
(string.h), die sich nach der 0 am Schluss orientieren. Beispiel: 
"strlen".
Das nur so zur Ergänzung.

lg,
willi
Gast #1400308
Lesenswert?

Willi S. schrieb:
> Die werden auch String-Arrays genannt, obwohl es in C und C++ keinen
> eigenen Datentyp "string" gibt. Das mit der \0 zum Schluss hat einen
> guten Grund. Es gibt einen ganzen Haufen String-Funktionen in C und C++
> (string.h), die sich nach der 0 am Schluss orientieren. Beispiel:
> "strlen".
> Das nur so zur Ergänzung.
>
> lg,
> willi

Mh zumindest in C++ gibts strings ;)
#1409452
Lesenswert?

Christoph Pelich schrieb:
> Christopher D. schrieb:
>
>> Mh zumindest in C++ gibts strings ;)
>
> Leider aber nicht als Daten-Typ.

Doch.
std::string

Die STL ist offizieller Bestandteil von C++ und sollte als solcher auch 
verwendet werden.

Wenn du std::string schon nicht kennst, werden dir die Augen übergehen, 
was du sonst noch so alles in der STL verfügbar hast :-)
Gast #1409458
Lesenswert?

Karl heinz Buchegger schrieb:

> Die STL ist offizieller Bestandteil von C++ und sollte als solcher auch
> verwendet werden.

Nichts sollte verwendet werden, nur weil es da ist. Warte mal ab, was 
fuer ein Zeug sie noch in C++ stopfen...
#1409465
Lesenswert?

Peter Stegemann schrieb:
> Karl heinz Buchegger schrieb:
>
>> Die STL ist offizieller Bestandteil von C++ und sollte als solcher auch
>> verwendet werden.
>
> Nichts sollte verwendet werden, nur weil es da ist.

In Zusammenhang mit der Aussage 'In C++ gibt es keine String Klasse' 
kann man trotzdem aber nur auf die in der STL vorhandene std::string 
verweisen.

Sie ist Bestandteil von C++, ob es einem nun passt oder nicht und somit 
ist die Behauptung einfach nur falsch und zeugt nicht gerade vom Wissen 
darüber, was in C++ alles vorhanden ist und was nicht.
Gast #1409470
Lesenswert?

Karl heinz Buchegger schrieb:

> In Zusammenhang mit der Aussage 'In C++ gibt es keine String Klasse'
> kann man trotzdem aber nur auf die in der STL vorhandene std::string
> verweisen.

Dem Teil habe ich ja auch nicht widersprochen, sondern dem danach.
#1409487
Lesenswert?

Peter Stegemann schrieb:
> Karl heinz Buchegger schrieb:
>
>> In Zusammenhang mit der Aussage 'In C++ gibt es keine String Klasse'
>> kann man trotzdem aber nur auf die in der STL vorhandene std::string
>> verweisen.
>
> Dem Teil habe ich ja auch nicht widersprochen, sondern dem danach.

Dann habe ich dich missverstanden

Hintergrund: man hört immer wieder die Aussage, dass std::string und 
Konsorten nicht zu C++ gehören, weil die ja in einer STL (igitt) 
residieren und damit nicht zur Sprache gehören. Und das ist ganz einfach 
Unsinn. Mit der gleichen Argumentation könnte man auch sagen, dass 
strcpy nicht zu C gehört, weil es ja schliesslich nicht in der Syntax 
verankert ist.

Oft kann man std::string nicht benutzen. Sei es, weil man ein altes 
Programm pflegen muss oder sich an ein bestimmtes Framework anpassen 
muss oder Schwierigkeiten mit Multithreading hat. Meistens sind es 
einfach nur historische Gründe, warum man mit std::string nicht 
weiterkommt. Wenn man aber diese Zwänge nicht hat, spricht nichts gegen 
std::string. Immer noch besser, als wenn sich Lieschen Müller selbst die 
x-te Stringklasse baut.
Gast #1409502
Lesenswert?

Karl heinz Buchegger schrieb:

> Hintergrund: man hört immer wieder die Aussage, dass std::string und
> Konsorten nicht zu C++ gehören, weil die ja in einer STL (igitt)
> residieren und damit nicht zur Sprache gehören. Und das ist ganz einfach
> Unsinn. Mit der gleichen Argumentation könnte man auch sagen, dass
> strcpy nicht zu C gehört, weil es ja schliesslich nicht in der Syntax
> verankert ist.

Stimmt. Den beiden ist gemeinsam, dass man sie sehr gut von der 
eigentlichen Sprache trennen kann. Und das ist das Schoene an C und C++ 
und das macht sie so geeignet fuer viele Platformen. Der Overhead, den 
man mitschleppen muss, ist extrem klein.

> Wenn man aber diese Zwänge nicht hat, spricht nichts gegen
> std::string. Immer noch besser, als wenn sich Lieschen Müller selbst die
> x-te Stringklasse baut.

Doch sicher gibt es genuegend Gruende fuer so eine Entscheidung. Aber es 
ist wohl muessig, das hier zu diskutieren. Das hatten wir schon und das 
fuehrt leider zu gar nichts.
Gast #1412688
Lesenswert?

> Meistens sind es einfach nur historische Gründe, warum man mit
> std::string nicht weiterkommt.

std::string hat irgendein compilerspezifisches Encoding und ist in der 
Regel nicht unicode-geeignet. std::wstring ist das teilweise, solange 
man die Strings nicht von irgendwo lesen oder irgendwo hinschreiben 
will. Dann hat man nämlich auch das Problem, daß man zwischen 
irgendeinem compilerspezifischen Encoding und dem externen Encoding 
konvertieren muß. Das ist mit standard-C++ dann recht umständlich und 
wird längst nicht von allen Compilern vernünftig unterstüzt. Die Namen 
der Encodings sind dann dazu auch noch compilerspzifisch,  und eine 
Liste der verfügbaren Encodings kann man in standard-C++ auch nicht 
ermitteln.
Mit einer Kombination aus std::wstring und iconv kann man aber 
einigermaßen arbeiten. Allerdings ist std::wstring nicht gerade 
sonderlich komfortabel. Deshalb gibt es wohl so viele APIs, die ihre 
eigene String-Klasse mitliefern.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren