c-strings
-
Hi, hab da ein kleines problem, für ne Huasarbeit in Informatik 1.
ich hab folgende Werte
char zielstring[maxAnzZeich], fuellZeich[]="*",
int maxAnzZeichwenn zielstring > maxAnzZeich
, dann soll der zielstring mit maxAnzZeich des fuellZeich beladen werden.
Bsp.:
maxAnzZeich=50
zielstring=60Ausgabe auf Bilsschirm 50*
Weiß einer, wie ich das machen kann?
Danke
Tobo
-
Tobo23 schrieb:
Hi, hab da ein kleines problem, für ne Huasarbeit in Informatik 1.
ich hab folgende Werte
char zielstring[maxAnzZeich], fuellZeich[]="*",
int maxAnzZeichwenn zielstring > maxAnzZeich
, dann soll der zielstring mit maxAnzZeich des fuellZeich beladen werden.
Bsp.:
maxAnzZeich=50
zielstring=60Ausgabe auf Bilsschirm 50*
Weiß einer, wie ich das machen kann?
Danke
ToboIch glaube Du bist im falschen Forum C oder gar C++ wären besser!
/* char zielstring[maxAnzZeich], fuellZeich[]="*", int maxAnzZeich wenn zielstring > maxAnzZeich , dann soll der zielstring mit maxAnzZeich des fuellZeich beladen werden. Bsp.: maxAnzZeich=50 zielstring=60 Ausgabe auf Bilsschirm 50* */ #include <stdio.h> #include <string.h> int main(void) { /* Habs mal für maxAnzZeich=10 zielstring=20 abgewandelt isses das was Du wolltest sollte für die grobe Aufgabenstellung so funzen ohne anderweitige Fehler abzufangen! Informier Dich bitte mal über Zeichenkettenverarbeitung/Manipulation insbesondere über: sprintf */ const int maxAnzZeich = 10; char zielstring[20]; int tatsaechlich_Laenge; printf("Bitte etwas eingeben: "); scanf("%s",&zielstring); getchar(); if((tatsaechlich_Laenge = strlen(zielstring)) > maxAnzZeich) { sprintf(zielstring,"%s",""); sprintf(zielstring,"%d*",tatsaechlich_Laenge); } printf("\n%s",zielstring); getchar(); return 0; }
Mit freundlicher Unterstützung
-
Dein Füllzeich habe ich nisch mitreingenommen!
Is direkt mit innen Aufruf von sprintf reinintegriert und berücksichtigt das.Das erste sprintf leert den Eingabepuffer (char-Array: zielstring) für so ominöse Ausgaben ala 50*
Das zweite sprintf formuliert eben diese ominösen Ausgaben ala 50*
in den Puffer (char-Array: zielstring)ja das sollte es zu Deiner Frage sein hoffe ich
-
#include <stdio.h> #include <string.h> int main(void) { /* Habs mal für maxAnzZeich=10 zielstring=20 abgewandelt isses das was Du wolltest sollte für die grobe Aufgabenstellung so funzen ohne anderweitige Fehler abzufangen! Informier Dich bitte mal über Zeichenkettenverarbeitung/Manipulation insbesondere über: sprintf für den Fall das Du nen Füllzeichen brauchst um es variabel zu halten dann so */ const int maxAnzZeich = 10; char zielstring[20]; int tatsaechlich_Laenge; char fuellzeichen = '*'; printf("Bitte etwas eingeben: "); scanf("%s",&zielstring); getchar(); if((tatsaechlich_Laenge = strlen(zielstring)) > maxAnzZeich) { sprintf(zielstring,"%s",""); sprintf(zielstring,"%d%c",tatsaechlich_Laenge,fuellzeichen); } printf("\n%s",zielstring); getchar(); return 0; }
-
Tobo23 schrieb:
... fuellZeich[]="*",
Im übrigen für ein Zeichen brauch man nicht gleich ein Feld auch wenn man im Laden mit Arbeitsspeicher beworfen wird^^
genügt auch:
char fuellZeich = '*'; // brauch 1 Byte
denn
char fuellZeich[]="*"; // brauch 2 Byte
mfg^^
-
Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.