Umwandlung von Cstring nach Char für die Funktion STRCHR
-
Mayday:
CString Zahl_loeschen(CString string_kpl,CString buchstabe)
{
int pos;
char char_string_kpl[] = string_kpl;//string_kpl;
char char_buchstabe[] = buchstabe;//buchstabe;
pos = strchr( char_string_kpl, char_buchstabe );
if (pos > 0)Ich will in eine Funktion CStringdaten übergeben und in der Datei für die Funktion STRCHR in char umwandeln.
Wie ???????????????????????????????????????????
Danke.
-
Wenn Du mit CString arbeitest, solltest Du i.d.R. immer auch mit TCHAR und Konsorten arbeiten!, dann hättest Du diese Probleme nicht...
Also
strchr => _tcschr
char => TCHAR
-
Nun habe ich folgendes Problem:
CString Zahl_loeschen(CString string_kpl,CString buchstabe)
{
int pos;
int i_test;
i_test = _ttoi( buchstabe);
pos = _tcschr( string_kpl, i_test);
if (pos > 0)Fehlermeldung:
C:\Downloads\P\PDA\Sudoku\Sudoku\SudokuDlg.cpp(255) : error C2440: '=' : cannot convert from 'unsigned short *' to 'int'
in der Zeile pos = ....i_testWas mache ich falsch ?
-
Weil "i_test" eben ein "int" ist und kein "wchar_t"... was erwartest Du?
-
ehm wenn ich korrigieren darf, nicht "i_Test" ist das Problem, sondern "pos". "pos" ist ein "int" und sollte ein "TCHAR*" sein. Schau dir doch mal die Funktion _tcschr(...,...) an, was da als Rückgabewert steht.
Grüssli
-
Danke funktioniert ohne Fehler.
Nun wird aber in pos keine Anzeige mehr angezeigt und kann deshalb nicht kontrollieren, ob der Buchstabe vorhanden ist.
Wie kann ich kontrollieren, ob ein Buchstabe in einem Text ist.
Habe 2 x CString beim eingang in die Funktionsroutine ?
Danke schon einmal.
-
Jedes CString hat eine Find Funktion, mit welcher du nach etwas suchen kannst im CString. (CString::Find)
Grüssli
-
Danke Dravere !
Hier die Lösung:
CString Zahl_loeschen(CString string_kpl,CString buchstabe)
{
int pos;
CString test;
CString str10;
str10 = string_kpl;
pos = string_kpl.Find(buchstabe);if (pos > 0)
-
Wenn es das ursprüngliche Ziel war bestimmte Zeichen zu entfernen dann kann man auch CString::Remove verwenden