AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Anzahl Strings in C zählen?

Ein Thema von OrNEC · begonnen am 4. Dez 2010 · letzter Beitrag vom 6. Dez 2010
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#11

AW: Anzahl Strings in C zählen?

  Alt 5. Dez 2010, 00:22
Code:
for ( int n = 0; n < sizeof(words) / sizeof(words[0]); n++ ){
bzw. ARRAYSIZE macro macht das gleiche:
for ( int n = 0; n < ARRAYSIZE(words); n++ ) {
oder du machst nen zähler der solang hochzählt bis words wahr ist:
Code:
int n = 0;
while ( words[n] ) { n++;
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#12

AW: Anzahl Strings in C zählen?

  Alt 5. Dez 2010, 00:52
Code:
for ( int n = 0; n < sizeof(words) / sizeof(words[0]); n++ ){
bzw. ARRAYSIZE macro macht das gleiche:
for ( int n = 0; n < ARRAYSIZE(words); n++ ) {
Jupp, das hat mich jetzt noch auf was anderes gebracht. Es gibt vielfach auch ein countof() Makro, welches als Gegenpart zu sizeof() gedacht ist. Wenn ich mich recht entsinne ist das sogar in irgendeinem Standard vorgeschlagen worden.

oder du machst nen zähler der solang hochzählt bis words wahr ist:
Code:
int n = 0;
while ( words[n] ) { n++;
unwahr ... ist aber gewagt wenn jemand mal das NULL vergißt
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#13

AW: Anzahl Strings in C zählen?

  Alt 5. Dez 2010, 20:16
Code:
for ( int n = 0; n < sizeof(words) / sizeof(words[0]); n++ ){
bzw. ARRAYSIZE macro macht das gleiche:
for ( int n = 0; n < ARRAYSIZE(words); n++ ) {
Jupp, das hat mich jetzt noch auf was anderes gebracht. Es gibt vielfach auch ein countof() Makro, welches als Gegenpart zu sizeof() gedacht ist. Wenn ich mich recht entsinne ist das sogar in irgendeinem Standard vorgeschlagen worden.

oder du machst nen zähler der solang hochzählt bis words wahr ist:
Code:
int n = 0;
while ( words[n] ) { n++;
unwahr ... ist aber gewagt wenn jemand mal das NULL vergißt

ja ich meinte solange es wahr ist zählen, wenns unwahr ist abbrechen
und gewagt, naja, wenn ers selber entwickelt die listen? ist ja dann egal
  Mit Zitat antworten Zitat
pixfreak

Registriert seit: 6. Jul 2007
112 Beiträge
 
Delphi XE3 Professional
 
#14

AW: Anzahl Strings in C zählen?

  Alt 6. Dez 2010, 07:05
Moin zusammen,

ich würde die Daten so auch nicht speichern, ausser ich hab z. B. eine fixe Fehlerliste mit einer am besten als Konstanten gespeicherten Anzahl, und es kann nicht passieren, dass ich auf ein Element zugreife, was garnicht existiert. Ansonsten wäre ja auch ein word_list[11] ein "gültiger" Zugriff

Und bitte nur lesend, nicht schreibend auf die word_list zugreifen, sonst kann es auch unangenehm werden, wenn der neue String länger als der Alte ist...

Bei
Code:
sizeof(word_list) / sizeof(word_list[0]) oder
sizeof(word_list) / sizeof(char *)
brauche ich im Array keinen NULL Kenner, um das Ende aufzuzeigen. Allerdings bekomme ich bei
Code:
char *word_list[] = {}
auch immer eins als Anzahl....

Wenn ich es genau und immer sicher wissen will und es gibt NULL, dann ist das durchiterieren auch ne Moglichkeit, aber wehe das NULL fehlt

Also ich würde um es wirklich sicher zu bekommen auf eine TStringList ausweichen bzw. in C++ einen vector oder einen ähnlichen Container nehmen.


VG Pixfreak
... und noch nen C++ Builder XE2
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz