Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Allgemeine Frage zu strings...

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 <
000
12.05.2004, 10:18 Uhr
chrisuni



Habe noch ein Problem...
1. Wenn ich mit einem Satz oder einem Wort arbeiten will... würde ich dann die Variable so deklarieren: char Wort[X], wobei X die Anzahl der Zeichen ist...
dann würde ich gets(Wort) für das einlesen benutzen.
Ist diese Lösung so in Ordnung... oder kann ich die Variable Wort noch irgendwie besser deklarieren?
Bitte einmal für C und einmal für C++ wenn es nicht das gleiche ist
--
gruß chris

nehmts mir net übel ich bin nen Anfänger und seh manchmal den Wald vor lauter Bäumen nicht mehr ;)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.05.2004, 10:54 Uhr
Pablo
Supertux
(Operator)


Für C gibt es verschiedene Varianten.
Die erste ist, wenn du du die max. Länge des Strings kennst bzw. wenn du die max. Länge beschränkst, dann kannst du char [X] benutzen


C++:
void foo() {
    char line[1024]; /* Auf 1023 Zeichen beschränken
    fgets(line, 1024, stdin);
    ....
}



(fgets ist wie gets, nur dass man auch die Länge eingibt und den Puffer, von dem man lesen soll, stdin=standard input=Tastatur)

Es gibt eine (nicht so saubere, für C++ler) Lösung, bei der du die Länge kennst, z.b. du weißt, dass man immer das Format
xx:yy:zz-abc
eingeben wird. die Länge ist 13, 12 Zeichen plus \0.

C++:
void foo() {
    char* line;
    line = (char*) malloc(13);
    if (!line) {
        fprintf(stderr, "Es gibt keinen Speicher mehr\n");
        return;
    }
    fgets(line, 13, stdin);
    ...
    // nicht vergessen, den Speicher freizugeben
    free(line);
}



Unter C++ kannst du die Klasse string benutzen, die vereinfach alles, da sie sich um die Länge kümmert (mein C++ Bsp ist nicht so gut, da ich nur C Programmier bin)


C++:
void foo() {
    std::string line;
    std::cin >> line;
    ...
}


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 12.05.2004 um 10:56 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.05.2004, 11:32 Uhr
~Gurkenpaul
Gast


Kannst auch einfach 'nen Zeiger benutzen.
char *der_string;
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.05.2004, 11:44 Uhr
typecast
aka loddab
(Operator)


@Gurkenpaul: Wofür???
--
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
Seiten: > 1 <     [ 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: