Zeichenketten im String-Array c ++?

8

Wie summiere ich die Anzahl der Strings in einem String-Array, in dem nicht explizit definiert ist, wie viele Elemente es braucht?

%Vor%

Sie müssen herausfinden, wie viele Elemente Array haben?

    
tonni 24.10.2012, 12:02
quelle

5 Antworten

10
%Vor%

constexpr falls verfügbar (C ++ 11) ermöglicht es Ihnen, den Rückgabewert für die statische Verwendung (Kompilierzeit) als Größe eines anderen Arrays zu verwenden.

    
CashCow 24.10.2012 12:04
quelle
8

Wenn str[] statisch definiert ist (wie gezeigt), wird dies funktionieren:

%Vor%

Wenn es dynamisch erstellt wird, benötigen Sie eine Markierung , um das letzte Element zu signalisieren ( 0 wird normalerweise verwendet, wenn es sich um ein Array von Zeigern handelt). Entweder das oder der Aufrufer sagt Ihnen, wie viele Elemente es gibt (auch üblich).

    
trojanfoe 24.10.2012 12:03
quelle
3

Zusätzlich zu den Methoden, die bereits in anderen Antworten aufgeführt sind, kann dies auch durch Hinzufügen eines Schutzwerts am Ende des Arrays geschehen, z. B. durch eine leere Zeichenfolge. Sie können dann das Array durchlaufen, bis Sie den Schutzwert erreicht haben.

Ich persönlich würde wahrscheinlich C ++ 11 und

verwenden %Vor%

Sie können also einfach la.size() abfragen, um das zu bekommen, was Sie wollten ... zur Laufzeit sowieso. Leider sehe ich keinen Weg, diesen Trick mit std::array zu benutzen, also ist es keine perfekte Alternative.

    
Rook 24.10.2012 12:11
quelle
0

Normalerweise verwende ich eine separate Variable, um die Array-Größe zu verfolgen.

%Vor%

Und wenn ich dann eine der Strings referenzieren muss, kann ich es einfach so nennen:

%Vor%

Und jedes Mal, wenn ich das Array in einer Schleife aktualisiere, benutze ich einfach strNum als Index, um mit dem Schreiben neuer Strings zu beginnen, und setze dann ein strNum ++ innerhalb der Schleife unmittelbar nach jedem neuen String.

    
Master Foo 26.06.2016 03:13
quelle
0

eine Möglichkeit, Zeiger zu verwenden, um die Elemente des Arrays zu zählen:

%Vor%

Ausgabe:
5

    
user6169399 26.06.2016 03:53
quelle

Tags und Links