Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Char array, bzw string

Mitglied: Power-Poler

Power-Poler (Level 1) - Jetzt verbinden

21.10.2013, aktualisiert 20:20 Uhr, 3072 Aufrufe, 8 Kommentare

Hallo, versuche mich an der Programmierung mit C und will jetzt irgendwie eine Funktion schreiben, die mir die Text Eingabe in der Konsole in einem Dynamischen Array speichert, sodass ich nicht unnötig viel Speicher reservieren muss.

Habe es schon hin bekommen, dass es innerhalb der Funktion funktioniert, nur bekomme ich das char array nicht zurück in die main.

Es wird eine Zeile ausgeben, in der der eingegebene String steht (das printf in ZK) und eine Zeile in der L steht, das heist, Test wird nicht in der main überschrieben, sondern nur lokal in der ZK behandelt.
Wie bekomme ich jetzt die Test aus der ZK zurück in die main?
das mit dem return Test, war auch nur ein Test, das will ich so nicht behalten.
Schonmal danke für eine Antwort.
Mitglied: rubberman
21.10.2013, aktualisiert um 20:01 Uhr
Hallo Power-Poler,

C ist bei solchen (vermeintlich einfachen) Dingen etwas für Masochisten (zumal du offenbar Java gewohnt bist). Du bist für die Speicherverwaltung selbst verantwortlich. Das heißt, für eine Eingabe mit dynamischer Länge musst du den verwendeten Speicher auch dynamisch erweitern (malloc, realloc). Das erfordert dann auch ein zeichenweises Einlesen. Die fgetc Funktion hat sich dafür bewährt.

Kommentiertes Beispiel, so wie ich Benutzereingaben für mich definiert und umgesetzt habe:
Falls du statt einem C Compiler einen C++ Compiler verwenden solltest, must du malloc und realloc noch das Casting zum Charpointer voranstellen.

Der Rückgabewert der Funktion ist 0 wenn bei der Eingabe alles OK war.

Grüße
rubberman
Bitte warten ..
Mitglied: Power-Poler
21.10.2013 um 20:18 Uhr
Erstmal Danke für deine Antwort.
(Sieht man das an meinen Quellcode, dass ich mich vorher an Java versucht habe ?)
Zu deinem code:
ähhm da muss ich mich erst einmal rein arbeiten.

Denke man sieht auch an meinen code, dass ich noch am Anfang stehe.
Melde mich wieder, sobald ich mich da hineingearbeitet habe.


(Oh Gott, da liegt ja scheinbar noch einiges vor mir, bis ich C kann... )
Bitte warten ..
Mitglied: rubberman
21.10.2013 um 21:15 Uhr
Hallo Power-Poler.

(Sieht man das an meinen Quellcode, dass ich mich vorher an Java versucht habe ?)
Nee, deinen früheren Postings aber

ähhm da muss ich mich erst einmal rein arbeiten
Jepp. Ich hoffe du kannst mit meinen Kommentaren was anfangen. Bei Unklarheiten, einfach melden.

(Oh Gott, da liegt ja scheinbar noch einiges vor mir, bis ich C kann... )
Ich arbeite nur ab und an mit C. Von "können" kann also bei mir auch nach 2 Jahren nicht die Rede sein. Ich habe mich damals dazu entschieden C zu lernen wegen der Performance und der einfachen Handhabung der Windows API. Aber ob ich von Java auf C umsteigen würde ...? Wohl noch eher auf C++, dann bleibt dir wenigstens die Objektorientierung erhalten (auch wenn das dort noch mal was ganz anderes ist).

Grüße
rubberman
Bitte warten ..
Mitglied: Guenni
22.10.2013 um 06:27 Uhr
Hi Power-Poler,

wenn du schon C++ programmieren willst, so nutze doch einfach das String-Objekt.

http://www.willemer.de/informatik/cpp/string.htm

Gruß
Günni
Bitte warten ..
Mitglied: Power-Poler
22.10.2013, aktualisiert um 07:03 Uhr
Der Grund warum C ist eigentlich ganz einfach.
Gezwungener maßen, ich muss es machen, es ist teil meines Studiengengans
nächstes Semester munkelt man, ist es C++
Aber ich denke wenn man etwas mehr macht, als nur die Übungsblätter vom Prof, kann das nur von Vorteil sein.
Danke für eure Unterstützung
Die Übungsblätter laufen meistens nur darauf hinaus:
Schreibe ein Programm das zwei eingelesene Zahlen addiert...
Bitte warten ..
Mitglied: rubberman
22.10.2013 um 09:31 Uhr
Schreibe ein Programm das zwei eingelesene Zahlen addiert...
Wo du mit C schon beim nächsten Problem bist -> konvertiere sicher von String zu Zahl

Grüße
rubberman
Bitte warten ..
Mitglied: Power-Poler
22.10.2013 um 11:21 Uhr
Naja, wir benutzen in der Regel nur %i und manchmal %f.
zum einlesen scanf_s (Weil laut Visual Studio 2012 scanf zu unsicher ist
beim konvertieren sind wir noch nicht
Bitte warten ..
Mitglied: rubberman
22.10.2013 um 22:02 Uhr
Ja, scanf funktioniert zu dem Zweck schon auch. Aus Spaß mal eine etwas ausführlichere Möglichkeit mit strtol (in das Beispiel von oben eingebaut). Kannst ja mal versuchen ob du folgen kannst, Kommentare sind wieder dabei.
Die Fn_GetLong gibt eine Bitmaske als unsigned int zurück, in der einzelne Fehlerflags gesetzt werden. Diese kannst du verarbeiten und später in deinem Programm selbst entscheiden welche Eingaben du als gültig akzeptierst.

Grüße
rubberman
Bitte warten ..
Ähnliche Inhalte
Visual Studio

String bzw Char in Argumentenkette einbinden, möglich?

gelöst Frage von nepixlVisual Studio4 Kommentare

Hallo zusammen, aktuell bastel ich ein kleines Progrämmchen via VB 2010 Express. Dieses Tool soll dem User so einfach ...

Datenbanken

MongoDB Update String to Array

Frage von Phreak87Datenbanken

Hallo, ich möchte in einer MongoDB via VB.Net mittels Query/Update ein Update auf ein Feld machen. Problem ist dass ...

C und C++

String einlesen in Array und wieder ausgeben von hinten

Frage von ProtectedC und C++4 Kommentare

Hallo, ich würde gerne einen String einlesen bzw. char und dann andersrum wieder ausgeben. Also: Otto Maoam zu: maoaM ...

C und C++

Anzahl der Buchstaben in einem String Element Array C++

gelöst Frage von ProtectedC und C++3 Kommentare

Hallo, ich benötige Hilfe. Ich möchte gerne in den jeweiligen Elementen die Anzahl der Buchstaben zählen. Ich hatte an ...

Neue Wissensbeiträge
Off Topic
Wann gibt es mehr Bits als Atome?
Information von AnkhMorpork vor 21 StundenOff Topic11 Kommentare

Boys 'n' girls, Freitagslektüre: Wenn Computertechnologie und Digitalisierung sich so weiterentwickeln, könnte die Zahl der digitalen Bits in 150 ...

Sicherheits-Tools

TrendMicro Worry-Free Business Security (WFBS) 10.0 SP1 - Critical Patch veröffentlicht!

Information von VGem-e vor 1 TagSicherheits-Tools3 Kommentare

Servus, siehe hier. Download-Link hier swfbs/10.0WFBS_100_SP1_All_MSA_11.7_HFB1073.exe Nähere Infos habe ich online noch nicht gefunden. Gruß VGem-e

Humor (lol)

Wie verhindere ich, dass Websitebesucher die Werbecookies abschalten?

Information von DerWoWusste vor 2 TagenHumor (lol)9 Kommentare

Ich habe gerade auf die Antwort gefunden: ich täusche einen langwierigen Änderungsprozess vor und biete nebenbei einen Cancelbutton, den ...

Sicherheit

Windows Setup erlaubt elevation of privilege plus DC Updates

Information von DerWoWusste vor 3 TagenSicherheit4 Kommentare

Eine interessante neue Sicherheitslücke. Details gibt es wenig, edit: doch, jetzt hab ich was: aber die klare Empfehlung: ...

Heiß diskutierte Inhalte
Windows Server
Administratorrechte im Dateisystem - Windows Server 2019 - DC
Frage von Indy06Windows Server19 Kommentare

Hallo, alle zusammen! Es kommt ja nun doch mal vor, dass man als Administrator auf einem Windows Server 2019, ...

Windows Server
MSI Installation als User auf TS funktioniert nicht
Frage von support-itWindows Server17 Kommentare

Guten Tag zusammen, ich habe eine Frage bezüglich der Installation von einer MSI-Datei auf einem Server 2016 Datacenter Terminalserver. ...

Windows Server
Windows Server 2019 Essentials
gelöst Frage von BosnigelWindows Server12 Kommentare

Moin! Für ein kleines Unternehmen wird komplett neue Hardware benötigt. Bis jetzt läuft es so: Drei Rechner, einer dient ...

Off Topic
Wann gibt es mehr Bits als Atome?
Information von AnkhMorporkOff Topic11 Kommentare

Boys 'n' girls, Freitagslektüre: Wenn Computertechnologie und Digitalisierung sich so weiterentwickeln, könnte die Zahl der digitalen Bits in 150 ...

Administrator Magazin
08 | 2020 Cloud-First-Strategien sind inzwischen die Regel und nicht mehr die Ausnahme und Workloads verlagern sich damit in die Cloud – auch Datenbanken. Dort geht es aber nicht nur um die Frage, wie die Datenbestände in die Wolke zu migrieren sind, sondern auch darum, welche Datenbank ...