![]() |
Zufallstexte C
So guten abend ersteinmal,
unten ist der ausschnitt einer von mir geschriebenen funktion (die kommentare wurden vom aufgabenbetreuer als hilfestellung gegeben). Was die funktion im moment macht steht schon dabei lediglich die letzten 2 schritte fehlen, und bei denen weiß ich nicht weiter. Was die funktion eigentlich machen sollte wenn sie fertig ist: Die funktion soll einen (speichereffizienten // malloc) Puffer mit einer zufälligen anzahl (1-MAXLEN) zufälliger Buchstaben (A-Z) füllen. MEIN PROBLEM: Wie schaffe ich es die generierten buchstaben in einen string zu schreiben, dh. den string durch die ergebnisse der for schleife zu füllen? Ich denke mal dass soll auch der kommentar des Aufgabenstellers bedeuten: Code:
//char* zufallsstring Die nächste aufgabe wird dann in die main geschrieben: Die Funktion zur generierung der zufälligen zeichenkette, also der inhalt des puffers soll mehrmals neu beschrieben werden wobei dessen ergebnisse in einem array abgespeichert werden. (Hier benötige ich eigentlich keine hilfe ich denke mal das funktioniert einfach mit strcpy(array string); wobei ich mir auch nicht ganz sicher bin wie ich dass anstelle weil der puffer ja in einer anderen funktion sitzt, also evtl. mit einem pointer) Code:
#include <stdio.h> Über Hilfe würde ich mich riesig freuen ich glaube ich sitze schon mehrere stunden davor und komm nicht weiter :( |
eine mögliche (std C) lösung:
PHP-Code:
|
oh vielen dank :)!
allerdings kann ich mit assert () nichts anfangen zumal es auch noch nicht behandelt wurde und wahrscheinlich auch gar nicht wird. Kann man das auch anders lösen? |
Ja die Zeile kannst du rauslöschen, oder besser durch ein if ersetzen.
|
...weil ich gerade string.h sehe.
c oder c++? ansonsten kannst du ja auch die string-klasse nutzen. |
C, C++ kommt erst noch ;)
|
So also die Ausgabe stimmt zu 90 % dh. es ist eine zufällige anzahl (1 bis MAXLEN) zufälliger buchstaben. Allerdings ist das erste Zeichen immer ein: °
Hängt wahrscheinlich mit dieser warnung zusammen?: warning: passing arg 1 of `zufall' makes pointer from integer without a cast Code:
#include <stdio.h> Code:
printf ("%s\n", zufall(buf)); Hat jemand ne ahnung warum mir immer dieses ° mit ausgegeben wird? EDIT: DAs Problem mit dem zeichen ist gelöst, die laufvariable i muss von 0 bis kleiner zufallszahl laufen, weiß jemand warum? Die warnung wird aber immer noch angezeigt |
Zitat:
Die erste Position in einem C-String bzw. C-Array ist also 0 und die letzte MAX-1. Zitat:
PHP-Code:
Das einfachste wäre, du machst es wie urga: PHP-Code:
PHP-Code:
|
ja, was allerdings nicht geht ist:
PHP-Code:
|
Zitat:
PHP-Code:
|
Probiert hast du ja schon, ich denke meine Lösung löst deinen Knopf.
PHP-Code:
|
danke für den code! allerdings hab ich noch eine frage, warum ist hier eine 0 in der klammer:
PHP-Code:
ich kann mir dass irgendwie nicht erklären |
Die Übergabeparamter sollen laut Vorgabe char** sein, das entspricht einen Pointer auf einen C-String. Die 0 in der Klammer sagt nur, dass der erste Buchstabe vom C-String übergeben werden soll.
|
vielleicht hilft auch folgendes zum verständnis:
PHP-Code:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:18 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.