Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » string array???

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
26.08.2004, 02:21 Uhr
Lensflare



hallo.

wenn ich eine variable anzahl an strings speichern will, wie setze ich das um?

ich bräuchte dann so eine art "string array" und das gibts es glaub ich nicht.

wenn ich ein char array nehme, dann hab ich nur eine variable anzahl an zeichen

ich will nämlich ein kleines programm schreiben, das den benutzer auffordert dateinamen einzugeben, die dann später bearbeitet werden. Es ist aber vorher nicht bekannt, wie viele dateinamen es werden.
Es mag vielleicht der eindruck entstehen, als könnte man einfach den dateinamen in ein char array speichern, bearbeiten und dann den nächsten dateinamen ins gleiche array speichern und den alten dateinamen somit überschreiben.
Doch ich brauche wirklich alle dateinamen jederzeit abrufbar, also gespeichert.

wäre sehr dankbar für ein paar ratschläge.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.08.2004, 02:39 Uhr
KaraHead



Die einfachste und eleganteste Möglichkeit, die mir bekannt ist ist ein String-Vector:

C++:
vector<string> s1;  //definiert einen Vector, der beliebig (soweit Speicher da) viele Strings aufnehmen kann



Erkundige dich mal nach Vectoren, sind ne feine Sache
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.08.2004, 03:04 Uhr
typecast
aka loddab
(Operator)


Und fuer C bietet sich ein


C++:
char** array_of_strings;
//oder
char* array_of_strings[];



an
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.08.2004, 07:57 Uhr
(un)wissender
Niveauwart


Und, tata, es geht auch

C++:
std::string meinArray[10];



Bearbeitung:

Habe gerade deinen Post ganz gelesen.
Nimm std::vector<std::string> und push_back(const std::string &, um neue Elemente einzufügen.


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 26.08.2004 um 07:59 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.08.2004, 09:51 Uhr
0xdeadbeef
Gott
(Operator)



C++:
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
#include <vector> //oder list, könnte evtl. sogar sinnvoller sein

int main() {
  std::string line;
  std::vector<std::string> filenames;

  while(true) {
    std::cout << "Dateiname: " << std::flush;
    std::getline(std::cin, line);
    if(line == "")
      break;
    filenames.push_back(line);
  }

  std::cout <<                         std::endl
            << "Eingegebene Namen:" << std::endl
            << "------------------" << std::endl
            <<                         std::endl;
  std::copy(filenames.begin(), filenames.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 27.08.2004 um 14:53 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.08.2004, 11:02 Uhr
(un)wissender
Niveauwart


Sollte es bei getline nicht std::cin heißen und nicht std::cout?
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.08.2004, 14:53 Uhr
0xdeadbeef
Gott
(Operator)


Wie? Was? Wo? Da hat nie std::cout gestanden! Nie! Glaubt mir! Aaaaaaah!
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.08.2004, 15:15 Uhr
(un)wissender
Niveauwart


Ich vergebe dir für zehn Ave Maria (hast ja selbst eingeführt den Scheiss als Gott...).
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
27.08.2004, 15:25 Uhr
0xdeadbeef
Gott
(Operator)


Ich und das Ave Maria eingeführt? Ich kenne ja noch nicht mal dessen Text. Und abgesehen davon bin ich vielleicht ein gemeiner und bösartiger Gott, aber etwas dermaßen bösartiges und bescheuertes kann sich nur ein Sterblicher ausdenken.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
27.08.2004, 16:20 Uhr
(un)wissender
Niveauwart


Auch wieder wahr.
Ich glaube, der Text lautet einfach Ave Maria, war halt für einfache Leute, keep it simple a la Microsoft.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: