Neuling
-
Hallo, ich habe ein wenig Erfahrung was OO-sprachen a la Java und C# angeht aber leider wirklich nur ein wenig...deswegen verzweifle ich an einigen Aufgaben, die 'nen Kumpel in C programmieren muss, der aber noch weniger Ahnung hat. Ich würd gern mal eine davon durchdiskutieren. Bzw. Tipps zur Löäsung erhaschen.
Die Aufgabe lautet
Implementieren Sie die in der Datei strop1.h definierten Funktionen. Es dürfen bei der Implementierung
keine Funktionen aus der Header-Datei string.h verwendet werden.int readString(char str[])
Liest eine Folge von Zeichen von der Standardeingabe und speichert sie in das Feld str. Mit der
Eingabe des Steuerzeichens newline ('\n') wird die Eingabe beendet. Um str als String zu
benutzen, muss das Ende der Zeichenkette durch das Zeichen '\0' markiert werden.
Die Funktion gibt die Anzahl der gelesenen Zeichen als Ergebnis zurück.Nun meine Lösung (auch wenn sie NICHT die Beste ist..tut mir ja Leid :x)
int main (void) { int readString(char str[]);{ char str[256]; int i = 0, zaehler = 0; printf("bitte Zeichenkette eingeben : "); gets(str); for(i; i < sizeof(str) ;) { if(str[i] != '\0'){ if(str[i] != ' '){ zaehler++; i++; }else { i++; } }else { break; } } printf("%d" ,zaehler); getch(); return zaehler; }
Und nun das Problem hierbei....es soll wohl so geschrieben werden (würd ich denken) dass es wie bei java
bla = Console.ReadLine();
genutzt werden kann. Ich kann aber meiner Meinung nach keinen undeklarierten String der der Funktion mitgegeben werden muss (int readString(char str[]))
verarbeiten, weil es eigentlich ohne meinen String den ich in der Funktion erstelle gehen sollte, oder nicht? Rückgabe ist ein Int- Wert...Ich hoffe das versteht jemand
-
Hi,
Funktionen werden außerhalb der main und allen anderen Funktionen geschrieben. Ein Aufbau sieht ca. so aus:#include <stdio.h> #include <stdlib.h> #define BUFSIZE 1024 int readString( char* buf, size_t bufsize ) { //... TODO return 0; } int main() { char line[BUFSIZE]={0}; if ( readString( line, sizeof(line) )) { // Fehlerbehandlung ... return 0; } return 0; }
Es ist ratsam die Größe des übergebenen Puffers mitzugeben, umd das Array abzusichern.
Gruß,
B.B.
-
Achne, deine Funktion soll ja die Anzahl der Zeichen zurückgeben, also so etwa aufrufen:
size_t n = readString( line, sizeof(line);
-
ich weiß nicht mal wie ich die aufgabenstellung genau zu verstehen habe
was muss ich in die.h datei un was in die .c?
-
-
#include <stdio.h> int mystrlen (char *s) { int i=0; while (*s++) { i++; } return i; } int readString(char *s) { return mystrlen (gets (s)); }
Dumme Aufgabe dumm gelöst.
-
Tim schrieb:
#include <stdio.h> int mystrlen (char *s) { int i=0; while (*s++) { i++; } return i; } int readString(char *s) { return mystrlen (gets (s)); }
Dumme Aufgabe dumm gelöst.
warum du nich mache dummes aufgabe schlau lösn tuhn?