Zum Inhalt springen

schmalbert

Mitglieder
  • Gesamte Inhalte

    7
  • Benutzer seit

  • Letzter Besuch

  1. wenns um die sache an sich und nicht um nen termin geht, vielleicht doch
  2. vorausgesetzt, man hätte hier eine klare aufgabenstellung, würde ich gerne hilfestellung geben. auch wenn ich weiter oben konkreten code gepostet habe, wäre mit einer komplettlösung hier eigentlich keinem geholfen. wenn es ein teil dieser aufgabe ist, zeichen in einem c-string zu zählen, dann implementiere doch einmal eine solche funktion (hinweise dazu sind weiter oben). eine funktion, die die länge eines strings ermitteln soll (analog zu strlen()), braucht als argument zb. einen zeiger auf diesen string (das ist im obigen fall der bezeichner des char-arrays) und als rückgabewert zB einen integer; dies ist vermutl. 2) und die signatur/prototyp würde zB so aussehen: int myStrlen(const char *); zur 3) soll diese funktion vermutlich derart erweitert werden, dass sie auch für das einlesen von der standardeingabe zuständig ist und anstelle der anzahl der zeichen eine zeichenkette mit dem ausgabetext beinhaltet. hierzu siehe mein codebeispiel oben. bei dieser variante wird das char-array in main() definiert und der zeiger dieses arrays wird der funktion übergeben, sodass diese auf den ihnhalt zugreifen kann (modifizieren in dem fall). eigentlich müsste diese funktion garnichts zurück geben, da mit dem übergeben der _referenz_ der inhalt, der durch das char-array bezeichnet ist, direkt manipulierbar ist (call by reference); mögliche signatur: void myStrlen(const char*); in dem fall würde beim aufruf aus main() heraus als argument das deklarierte array angegeben werden. in der funktion würde dieses array dann mit dem ergebnistext (der vermutlich in main() ausgegeben werden soll) beschrieben werden (siehe auch hierzu codebeisp. oben).
  3. hallo, habe den thread nur überflogen, daher gefahr, dass ich OT bin; die meisten posts hier im thread scheinen das aber auch zu sein. hier vielleicht ein initialer hinweis: einen rechner mit den grundrechenarten kann man relativ einfach durch 2 stacks implementieren. ein stack für operanden und einer für operatoren. man kann, wenn man UPN verwendet, auch mit einem stack auskommen. google einfach mal mit den o.g. stichwörtern, um eine detailiertere erklärung zu finden. grüsse
  4. lol - stimmt aber vielleicht helfen die infos luii trotzdem weiter. ne genauere aufgabenstellung wäre jedenfalls hilfreich; ohne konkrete frage ist eine hilfestellung schlecht möglich.
  5. wenn strlen() nicht benutzt werden soll,formuliere doch in der funktion einfach eine schleife, die das zählen der zeichen übernimmt. ersetze strlen() durch die variable, die durch die vorangegangene schleife die anzahl der zeichen in dem c-string enthält. einen c-string kannst du ganz einfach durchiterieren und mitzählen bis ein zeichen mit dem wert 0 kommt ( char ende=0; ) - dann hast du in der zählvariable die anzahl der zeichen im string (vorausgesetzt, die zählvariable wurde korrekt initialisiert). was das andere angeht, scheine ich nicht zu verstehen, worums überhaupt geht. am besten, du postest deine aufgabe direkt hier herein.
  6. ups, hatte seiteneffekt nicht berücksichtigt; hier der korrekte vorschlag: char* myGets(char * cstr) { printf("Bitte geben sie einen Satz ein: \t"); gets(cstr); sprintf(cstr,"Der satz besteht aus %i Zeichen.", strlen(cstr)); return cstr; } /* ..*/ int main(void) { char satz[80]; printf("%s\n", myGets(satz)); return 0; }
  7. hallo luii, um das problem zu begreifen, ist das alles etwas sehr schwammig, was du schreibst. -Zitat- 1. Aufgabe: Innerhalb von main() wird ein text eingegeben. Der text wird an eine funktion übergeben. Die funktion soll die textlänge ermitteln und anzeigen. -/Zitat- in deiner lösung wird in main() ein text von der standardeingabe in ein zuvor definiertes character-array eingelesen. der pointer auf das array wird an eine funktion (strlen()) übergeben, die die anzahl der zeichen zurück liefert. der rückgabewert (die anzahl der zeichen) wird in main() mit printf() ausgegeben. -Zitat- Die 2. aufgabe ist wie in der 1. aufgabe nur das die textöänge an main() zurückgegeben und auch dort angezeigt werden soll. -/Zitat- wo ist der unterschied? -Zitat- Und die 3. aufgabe ist innerhalb einer funktion wird ein text eingeben. Dieser text wird an main() zurückgegeben und hier angezeigt. -/Zitat- falls ich das richtig verstanden habe, wäre das eine möglichkeit: du definierst (wie gehabt) in main() ein char-array und gibst deiner zu definierenden funktion den pointer auf dieses array als argument mit, sodass in dieser funktion per gets() in dieses array hineinkopiert werden kann. /* code */ /* ..*/ char* myGets(char * cstr) { printf("Bitte geben sie einen Satz ein: \t"); gets(cstr); return cstr; } /* ..*/ int main(void) { char satz[80]; printf("\nDer satz \"%s\" besteht aus %i Zeichen.\n", myGets(satz), strlen(satz)); return 0; } /* end code */ hth ms

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