Zum Inhalt springen

string, char-array, pointer


Empfohlene Beiträge

Geschrieben (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 von 19chris88
Geschrieben

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. ;)

Geschrieben (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 von lilith2k3
Geschrieben (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 von lilith2k3

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...