Chakky
Member of Honour
Hallo,
nach dem ihr mit meinen Problem helfen konnten mit den Maxima, hab ich wieder mal ein Problem.... (Klausur vorbereitung mehr oder weniger)
Erstmal die eigentliche Aufgabe:
Ich hab mir jetzt als Lösung folgendes gedacht.
Ich les mir die umzuwandelde Zeichenkette ein, durchsuche jedes einzeln Buchstaben und wandeln den entsprechend um. Bin da auf 2 Problem gestoßen.
a) ü belegt zum Bsp in den Char Feld nur eine "Einheit", aber "u hingegen 2? Da muss ich also alles um 1 verschieben, richtig? Nur wie :/
b) Ich bekomme schon eine Umwandlung von f zu F nicht hin.
Hier mal mein Code den ich erstmal zum laufen bekomme wollte eh ich mich direkt an die Umlaute ranmache.
Ich bekomme als Compiler Error:
Nur kann ich mit der Meldung nicht viel anfangen, außer das meine Umwandlung von Char in Char nicht funktioniert, obwohl ich doch in meinen Augen keine Umwandlung betreibe....
Danke für gute Tips
nach dem ihr mit meinen Problem helfen konnten mit den Maxima, hab ich wieder mal ein Problem.... (Klausur vorbereitung mehr oder weniger)
Erstmal die eigentliche Aufgabe:
Umlaute können nicht ausgegeben werden, deshalb ein Variante umlaute so zu schrieben:
ä=“a
ö=“o
ü=“u
Ä=“A
Ö=“O
Ü=“U
ß=“s
beispiel: anstatt ‘müller’ à ‘m”uller’
a) zwei Zeichenfelder mit max. 1000 Zeichen erstellen
b) in ein Zeichenfeld eine Zeichenkette einlesen
c) diese zeichenkeLe in das andere Zeichenfeld kopieren und die Umlaute ersetzen
Ich hab mir jetzt als Lösung folgendes gedacht.
Ich les mir die umzuwandelde Zeichenkette ein, durchsuche jedes einzeln Buchstaben und wandeln den entsprechend um. Bin da auf 2 Problem gestoßen.
a) ü belegt zum Bsp in den Char Feld nur eine "Einheit", aber "u hingegen 2? Da muss ich also alles um 1 verschieben, richtig? Nur wie :/
b) Ich bekomme schon eine Umwandlung von f zu F nicht hin.
Hier mal mein Code den ich erstmal zum laufen bekomme wollte eh ich mich direkt an die Umlaute ranmache.
Code:
#include<iostream>
using namespace std;
char copystring(char string1[],char string2[],int len) //alle sachen übergeben
{
for(int i=0;i<len;i++)
{
switch(string1[i])
{
case "f":string1[i]="F";break; //ersetze kleines f mit F
default: string1[i]=string1[i]; //wenn nix gefunden dann behalte string bei
}
string2[i]=string1[i];
}
return string2;
}
int main()
{
int len = 100;
char string1[100];
char string2[100];
cin<<string1;
cout<<copystring(string1,string2,len);
system("PAUSE");
return 0;
}
Ich bekomme als Compiler Error:
D:\TU\Info\klausur 1\4.cpp In function `char copystring(char*, char*, int)':
13 D:\TU\Info\klausur 1\4.cpp case label does not reduce to an integer constant
13 D:\TU\Info\klausur 1\4.cpp invalid conversion from `const char*' to `char'
19 D:\TU\Info\klausur 1\4.cpp invalid conversion from `char*' to `char'
D:\TU\Info\klausur 1\4.cpp In function `int main()':
29 D:\TU\Info\klausur 1\4.cpp no match for 'operator<<' in 'std::cin << string1'
Nur kann ich mit der Meldung nicht viel anfangen, außer das meine Umwandlung von Char in Char nicht funktioniert, obwohl ich doch in meinen Augen keine Umwandlung betreibe....
Danke für gute Tips
