PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++-String



Ricky
14.02.2004, 21:28
Hi,
weiß einer von euch wie ich bei einem String die Länge bestimmen kann???
Also so, dass er immer 83 Zeichen hat, obwohl vom Benutzer nur 10 eingegeben wurden???

Ynnus
14.02.2004, 21:32
ich weiß zwar nicht wie das in C++ aussieht, aber du könntest doch einfach 83 - (minus) Anzahl der Zeichen des Strings rechnen und das Ergebnis (welches die Differnez von Länge des Strings zu 83 ist) einfach als Leerstellen an den String dranhängen... Dann kommst du auch auf 83, und der Rest sind eben Leerstellen. Alternativ könntest du per For Schleife immer eine Leerstelle hinzufügen und abfragen, ob der String bereits die Länge von 83 hat und dann gegebenenfalls abbrechen. Zweite Variante ist aber umständlicher. ;)

MuadDib
14.02.2004, 21:47
Ganz einfach:

Du legst du Beginn einfach ein char-Array der Länge 83 (bzw. 84, da du noch einen Platz für das 0-Byte brauchst) an. Dort rein speicherst du den String. mit strlen(deinString) bekommst du den Index des 0-Bytes. Also lässt du, wie Sunny schon gesagt hat, deinen String durch eine for-Schleife laufen und hängst soviel Leerstellen an, wie nötig:



for(int i=strlen(myString);i<83;i++)
{
myString[i] = ' ';
}

zum Schluß noch das 0-Byte anhängen:


myString[83]='\0';

Eine elegantere Lösung fällt mir auch nicht ein :)

darkpegasus
15.02.2004, 20:12
Original geschrieben von Sunny
Dann kommst du auch auf 83, und der Rest sind eben Leerstellen. Alternativ könntest du per For Schleife immer eine Leerstelle hinzufügen und abfragen, ob der String bereits die Länge von 83 hat und dann gegebenenfalls abbrechen. Zweite Variante ist aber umständlicher. ;)

Dafür würde seich IMO eine Whileschleife besser anbieten(:

while (strlen(string)<83)
{
string=string+" ";
}

(weiß nicht ob es geht, so gut kenne ich c++ noch nicht, könnte aber klappen)

edit: @MuadDib: sind die Strings nicht bei C++ in Anführungszeichen,(weil du sie in hochkommas wie in delphi gesetzt hast...)

MuadDib
15.02.2004, 20:52
Original geschrieben von darkpegasus
edit: @MuadDib: sind die Strings nicht bei C++ in Anführungszeichen,(weil du sie in hochkommas wie in delphi gesetzt hast...)
Sicher, nur hänge ich da keinen weiteren String an, sondern nur einen char, der wird nunmal mit Hochkommas angegeben