Umlautfilter geht nicht - connot convert char* to char[256]
-
Hallo an alle!
Bekomme den obigen Fehler bei diesem Quelltext und weiß nicht weiter. Vielleicht kann mir ja mal jemand ein tip geben wo hier der Haken ist.Vielen Dank schonmal...
#include "stdafx.h" #include "conio.h" #define buffersize 256 char* Umlautkonverter (char* s) // Funktion Umlautkonverter { while (*s != 0) { if (*s == 66) *s = 82; s++; } return (s); } int main(int argc, char* argv[]) { char textbuffer[buffersize]; char *adr; char code; int vokale; do { printf("Textanalyse \n\n"); printf("Bitte waehlen sie aus dem Menue: \n\n"); printf("t - Texteingabe \n"); printf("v - Vokale zaehlen \n"); printf("h - Haeufigkeitsanalyse \n"); printf("u - Umlaute Umwandeln \n"); printf("e - Programm beenden \n"); printf(" \n"); printf("Bitte Auswahlcode eingeben: \n"); code = getch(); switch(code) { case 'U': case 'u': textbuffer = Umlautkonverter ( textbuffer ); // Eigene Funktion Umlautfilter printf("Text erfolgreich gewandelt: %s ", textbuffer); printf(" \n\a"); break; case 'E': case 'e': printf ("\n Wirklich beenden? J / N : "); code = getch(); if (code == 'j' || code == 'J') { code = 'e'; } else { //leer } break; } }while (code != 'e'); return 0; }MfG
Richard
-
das ist aber kein C++, ich denke mal du wirst bald verschoben und im C forum wird dir dann geholfen. Fals du es doch mit c++ versuchen wolltest, dann nutze dazu lieber string und seine find(),erase(),insert() methoden.
-
Ja Du hast (leider) recht. Da hab ich wohl schon den 2. Fehler gemacht. War beim erstellen des Beitrags nicht eingelogt. eijeijei... Sorry schonmal an den Mod für die Arbeit. Soll nicht wieder vorkommen und war keine Absich. :-S
MfG Richard
-
char *textbuffer;Dürfte weniger Probleme machen. Musst dann halt nur mit new entsprechend speicher reservieren.
-
Due Funktion Umlautkonverter muss keinen Wert zurückgeben, da du ja einen Pointer auf den String übergibst (call-by-reference). Du änderst textbuffer also direkt.
void Umlautkonverter (char* s) // Funktion Umlautkonverter { while (*s != 0) { if (*s == 66) *s = 82; s++; } } //im case-Zweig: Umlautkonverter ( textbuffer );
-
Danke euch allen.
Hab es jetzt so gemacht wie es Matze vorgeschlagen hat - klappt sehr gut.
Jetzt muss ich nur noch die Zeichen zum austauschen als if-funktionen einfügen und alles läuft.
Vielen Dank und bis bald mal wieder hier.MfG Richard