19chris88 Geschrieben 25. November 2010 Geschrieben 25. November 2010 (bearbeitet) hey, ich soll ein program schreiben: es soll ein string eingegeben werden der in ein char-array gespeichert wird. wie kann ich soetwas realisieren? es soll anschließend der string ausgegeben werden über einen pointer. es soll nur ein wort pro zeile ausgegeben werden. kann mir jemand einen tipp geben wie ich das alles machen kann? finde keinen anfang. hier erstmal was ich schon gemacht habe, nicht viel! XD #include <stdio.h> #include <stdlib.h> int main(){ char zeichenkette[100]; gets(zeichenkette); printf("%s\n",zeichenkette); system("pause"); return 0; } danke schonmal Bearbeitet 25. November 2010 von 19chris88 Zitieren
carstenj Geschrieben 25. November 2010 Geschrieben 25. November 2010 Hi, niemals gets benutzen: man page fgets section 3 The gets() function cannot be used securely. Because of its lack of bounds checking, and the inability for the calling program to reliably determine the length of the next incoming line, the use of this function enables malicious users to arbitrarily change a running program's func- tionality through a buffer overflow attack. It is strongly suggested that the fgets() function be used in all cases. (See the FSA.) Lieber fgets. Ist etws mehr Aufwand, aber sicherer. Du musst den Text einlesen (mit fgets), danach in einer Schleife den String nach einem bestimmten Zeichen durchsuchen. Wenn dieses Zeichen auftaucht, einen Zeilenumbruch ausgeben. Wenn der String sein Ende erreicht hat (also entweder 100 Zeichen eingegeben wurde oder ein bestimmtes anderes Zeichen gefunden wurde), dann bricht die Schleife ab. Ich hoffe das war so verständlich. Zitieren
lilith2k3 Geschrieben 26. November 2010 Geschrieben 26. November 2010 (bearbeitet) #include <stdio.h> int main() { const int maxStringLen = 100; const int stringEnde = '\0'; const int leerZeichen= ' '; const int enter= '\n'; char string[maxStringLen]; char *pointer; fputs("Bitte geben Sie eine Zeichenkette ein!\n", stdout); fgets(string, maxStringLen, stdin); pointer=string; while (*pointer != stringEnde) { if (*pointer == leerZeichen) { fputc(enter, stdout); pointer++; continue; } fputc((int)*pointer, stdout); pointer++; } }[/PHP] Bearbeitet 26. November 2010 von lilith2k3 Zitieren
carstenj Geschrieben 26. November 2010 Geschrieben 26. November 2010 Super. Und wem ist damit geholfen? Zitieren
lilith2k3 Geschrieben 26. November 2010 Geschrieben 26. November 2010 Super. Und wem ist damit geholfen? Dem TO? Zitieren
carstenj Geschrieben 26. November 2010 Geschrieben 26. November 2010 Wenn du unkommentierten, fertigen Code als Hilfe ansiehst, bei dem im Grunde keinerlei eigene Denkleistung mehr erbracht werden muss, hast du natürlich Recht. Zitieren
lilith2k3 Geschrieben 26. November 2010 Geschrieben 26. November 2010 (bearbeitet) Was der TO draus macht, bleibt ihm überlassen. Es ist ein Angebot, mehr nicht. Wenn er es bloß kopiert, sein Problem. Und ich wüsste auch nicht, was ich hier kommentieren sollte. Die Semantik ist klar. Wenn es Probleme mit der Syntax gibt, kann der TO gerne nachfragen. Bearbeitet 26. November 2010 von lilith2k3 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.