WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 16.11.2003, 15:46   #1
Groovy
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.107


Unglücklich Verzweiflung bei Funktionen und Teilstrings ersetzen

http://www.pri.univie.ac.at/~itep/w...hue/hue05a.html

Naja ich hab schon wieder Schwierigkeiten beim lösen eines dieser eprog Uni-Beispiele

Ich hab mich auf Bsp8 konzentriert.
Das Bsp8 hört sich zwar einfach an aber damit hab ich auch schon Probleme.
Ich bitte um eure Hilfe!


Code:
<include>iostream.h
 
char replace(char par1, char par2)
{
..
...
...
}
 
int main(){
char a[100];
char b[100];
char kette[100];
 
for (int i=0; i<=100; i++)
cin>>kette[i];
replace()
...
...
}
Sorry weiter weiss ich wirklich nicht mehr was zu tun ist...bin die ganze Nacht gesessen und komm einfach nicht weiter.

Ich hab keine Ahnung und Vorstellung wie ich das Problem weiter angehn soll.
Groovy ist offline   Mit Zitat antworten
Alt 16.11.2003, 17:52   #2
flinx
Inventar
 
Registriert seit: 08.04.2001
Beiträge: 3.101


Standard

Link?
flinx ist offline   Mit Zitat antworten
Alt 16.11.2003, 17:59   #3
Groovy
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.107


Standard

aha funkt nicht
nochmal:
http://www.pri.univie.ac.at/~itep/ws...ue/hue05a.html
Groovy ist offline   Mit Zitat antworten
Alt 16.11.2003, 18:44   #4
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Also gut:

Mehrere Fehler haben sich da gezeigt:

1) ein include (Preprocessor-) Statement muss so aussehen:

Code:
#include <header.h> (=Suche im Includepfad) oder
#include "header.h" (=Suche im aktuellen Verzeichnis beginnen)
D.h. die korrekte Syntax ist verlangt

2) Wenn Zeichenketten zur Übergabe verlangt sind, muss eine Funktion so aussehen:

Code:
int my_string_replace (char *search_string, char *replace_string)
{
D.h. es müssen Adressen auf die jeweils erste Zelle der Chararrays übergeben werden und nicht der jeweilige Wert der ersten Zelle der Chararrays search_string und replace_string)

3) Der Aufruf in Deinem Programm muss so aussehen:

Code:
my_string_replace("Ein","Mehr");
4) Wenn man ein Chararray mit 100 Elementen deklariert, so darf man im Index auch nur die Elemente 1-100 ansprechen, sprich Index 0 - 99.

Siehe -> for (int i=0; i<=100; i++)

Das muss for (int i=0; i<=99; i++) oder for (int i=0; i<100; i++) lauten.

5) Um kette[100] als globale Zeichenkette verwenden zu können, muss die Variable außerhalb jeglicher Funktion deklariert werden, sowie beim Zugriff in anderen Quelltext-Dateien als main.cpp mittels extern char kette[100]; definiert werden.

Code:
char kette[100];

int main (void)
{
mfg
Kikakater
kikakater ist offline   Mit Zitat antworten
Alt 16.11.2003, 18:52   #5
maxb
Großmeister
 
Benutzerbild von maxb
 
Registriert seit: 06.08.2001
Ort: Wien
Beiträge: 5.077

Mein Computer

Standard

ergänzend noch eine naive Frage an Groovy:

warum setzt du nicht die klasse "string" mit ihren methoden "find" und "replace" ein.

das sind keine funktionen aus externen bibliotheken!

http://www.cpp-entwicklung.de/cpplin...00000000000000

grüße
maxb
____________________________________

www.maxb.cc
und www.bikeandbeer.info
maxb ist offline   Mit Zitat antworten
Alt 16.11.2003, 19:03   #6
Groovy
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.107


Standard

Zitat:
Original geschrieben von kikakater


Code:
#include <header.h> (=Suche im Includepfad) oder
#include "header.h" (=Suche im aktuellen Verzeichnis beginnen)
Sowas dummes...das dürfte mir doch gar nicht passieren!
Naja gestern wars schon ganz schön spät...




Vielen Dank Leute!
Werds weiterhin versuchen!
Groovy ist offline   Mit Zitat antworten
Alt 16.11.2003, 19:13   #7
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Ich glaube kaum, daß Klassen zur Lösung herangezogen werden sollen.

Es soll einfach die globale Zeichenkette um die Differenz der beiden Parameterzeichenketten zusammen- oder auseinandergeschoben werden am Ende (=Länge) der Suchzeichenkette innerhalb der globalen Zeichenkette.


Noch Ein Einzeller
........^ (<-- hier ein 'r' einfügen, vorher "Meh" ersetzen)

Die Differenz der Zeichenketten "Ein" und "Mehr" ist +1 - sprich die (globale) Zeichenkette muss um ein Zeichen an Stellen wo der Suchstring gefunden wird (Stelle + suchstringlaenge) auseinandergeschoben werden.
kikakater ist offline   Mit Zitat antworten
Alt 16.11.2003, 19:19   #8
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

und noch eines ...

Es heißt zwar C++, aber hier sind C Fähigkeiten gefragt.

Die Tutoren wollen Indexprogrammierung sehen und Filterung des Zeichens '\0' und nicht die Verwendung von Klassen.

Das Ganze dient der Stärkung der programmiertechnischen Fähigkeiten und ist außerdem ein Beitrag zu "Programmhygiene", da bei Stringverkettungen mittels Stringklassen sehr viel mehr Resourcen wie Speicher und Zeit verbraucht werden.
kikakater ist offline   Mit Zitat antworten
Alt 16.11.2003, 20:12   #9
Groovy
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.107


Standard

Zitat:
Original geschrieben von kikakater


Code:
int my_string_replace (char *search_string, char *replace_string)
{
Hmm, was bedeuten die Sternchen?
Nicht einmal das versteh ich...

edit: hab's schon gefunden es sind Zeiger oder?
Mit dem Stoff sind wir aber noch nicht so weit.

Dank dir trotzdem für die zahlreichen Beiträge.
Groovy ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:38 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag